JS arr陣列轉化成json物件,資料改造並對json物件自定義
阿新 • • 發佈:2019-01-03
有時候後臺會返回一些奇怪的資料,不能滿足業務邏輯需要,所以我們就需要對 這部分資料進行自定義。
假如後臺返回的資料如圖(部分截圖)
而我們需要的資料結構是這樣的:
[{"name":"全部","id":0},{"name":"預約","id":1},{"name":"已到店","id":2},{"name":"已繳意向金","id":3},{"name":"已簽約","id":4},{"name":"終止","id":5}]
所以我們就需要對返回的資料進行改造,思路如下
①迴圈取出我們需要的資料,push進陣列中。
let list = {0: "全部", 10: "預約", 20: "已到店", 40: "已繳意向金", 60: "已簽約", 70: "中止"} var arr = [] for (let i in list) { arr.push(list[i]) } console.log(arr) // 結果如下:["全部", "預約", "已到店", "已繳意向金", "已簽約", "中止"]
這樣我們通過迴圈就獲得了我們想要獲取的值。
②把陣列轉化成 json物件,給每個值新增一個對應的鍵,並新增新的屬性,例如新增 id屬性。
let list = {0: "全部", 10: "預約", 20: "已到店", 40: "已繳意向金", 60: "已簽約", 70: "中止"} var arr = [] for (let i in list) { arr.push(list[i]) } console.log(arr) var json = [] for (var i = 0; i < arr.length; i++) { var j = {} j.name = arr[i] j.id = i // 這裡還可以繼續新增屬性 j.屬性 = 值 json.push(j) } console.log(JSON.stringify(json)) // 結果如下 [{"name":"全部","id":0},{"name":"預約","id":1},{"name":"已到店","id":2},{"name":"已繳意向金","id":3},{"name":"已簽約","id":4},{"name":"中止","id":5}]
綜上,結合上面的步驟 就獲取了我們最終的值,其實上面最主要的一步就是這
為什麼要把 var j = {}放在迴圈的內部而不能放在外部,其實跟 引用資料型別 有關係。具體可參考下面這篇文章;