###### tags: `資料庫程式設計` `Javascript`
> 有什麼新方法都可以放上來喔
> 我只是放我通過的程式碼而已
# OnlineTest - Javascript 單元 2
## 1. 讀取JSON
:::info
將輸入一個json格式的陣列,陣列內的物件格式為:
{
"id": 1, //書本ID
"name": "書名", //書本名稱
"price": 160, //一般價格
"favorable_price": 120 //優惠價格(可能不存在)
}
需要計算這些書的總價,有優惠價格時使用優惠價格,沒有時使用一般價格
EX:
'[{"id":1,"name":"書名","price":160},
{"id":10,"name":"書名2","price":200,"favorable_price":120},
{"id":11,"name":"書名3","price":200,"favorable_price":10}]' => 290
```javascript=
function MyMainFunc(books) {
bks = JSON.parse(books);
let price = 0;
bks.forEach((item) => {
if (item["favorable_price"]) price += item["favorable_price"];
else price += item["price"];
});
return price;
}
```
:::
## 2. 字串化JSON
:::info
將輸入一本書的資訊,回傳這本書的JSON格式
物件格式為:
{
"id": 1, //書本ID
"name": "書名", //書本名稱
"price": 160, //一般價格
"favorable_price": 120 //優惠價格(可能不存在)
}
EX:
- MyMainFunc(120,"書名1",280,120) => '{"id":120,"name":"書名1","price":280,"favorable_price":120}'
- MyMainFunc(1,"書名2",300) => '{"id":1,"name":"書名2","price":300}'
```javascript=
function MyMainFunc(id, name, price, favorable_price) {
if (favorable_price !== undefined) {
return JSON.stringify({"id":id, "name":name, "price":price, "favorable_price":favorable_price});
} else {
return JSON.stringify({"id":id, "name":name, "price":price});
}
}
```
:::
## 3. 字串化變數
:::info
將輸入一個不同類型的參數,依照類型回傳這個參數的字串值
EX:
- "abcdef" => "string:abcdef"
- 123 => "number:123"
- true => "boolean:true"
- {data:123} => 'json:{"data":123}'
- [{a:1},2,3] => 'json:[{"a":1},2,3]'
```javascript=
function MyMainFunc(value) {
if (typeof(value) === "object") {
return "json:" + JSON.stringify(value);
} else return typeof(value) + ':' + value;
}
```
:::