###### 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; } ``` :::