簡體   English   中英

在對象數組中將 object 值轉換為鍵/值對

[英]In array of objects turn object values into key/value pair

我有興趣使用chartkick ,所以我需要將 JS object 轉換為以下格式:

var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}]

為以下格式:

var arrayOne = [{'01/01/2017': 200}, {'02/01/2017': 220},{'03/01/2017':250}]

任何幫助將不勝感激。

使用Array.prototype.map()

 const src = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}], result = src.map(({date,value1}) => ({[date]: value1})) console.log(result)
 .as-console-wrapper{min-height:100%;}

你可以試試這個

 let sampleArray = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}] let finalArray = sampleArray.map(data => ({[data.date]:data.value1})) console.log(finalArray)

Output 會

[{01/01/2017: 200},{02/01/2017: 220},{03/01/2017: 250}]
 var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}];
    var mappedArray = array.map(item => {
    return {
        [item.date]: item.value1
    }
})

將數組和 map 循環到新結構

試試這個:

 var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}] let final_array = array.map(arr => { return {[arr.date]: arr.value1}; }) console.log(final_array)

如果您想為每個 value1、value2、...循環執行此操作

 var array = [{ date: '01/01/2017', value1: 200, value2: 300, value3: 400 }, { date: '02/01/2017', value1: 220, value2: 330, value3: 430 }, { date: '03/01/2017', value1: 250, value2: 330, value3: 420 }] const numberOfValues = 3; for (let i = 1; i <= numberOfValues; i++) { const mappedArray = array.map(x => { const result = {}; result[x.date] = x["value" + i.toString()]; return result; }); console.log(mappedArray); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM