data1 = [
{ "label": "Some Label", "value": '018'},
{ "label": "Another Label", "value": '020'}
]
得到
data2 = {
"018": "Some Label",
"020": "Another Label"
}
應該在for循環看起來怎麼樣?
for (let item of data){
....
}
data1 = [
{ "label": "Some Label", "value": '018'},
{ "label": "Another Label", "value": '020'}
]
得到
data2 = {
"018": "Some Label",
"020": "Another Label"
}
應該在for循環看起來怎麼樣?
for (let item of data){
....
}
如果你想堅持使用for..of
循環,你可以這樣做:
var data2 = {};
for (let item of data) {
data2[item.value] = item.label
}
您可以使用reduce()
並返回對象。
var data = [
{ "label": "Some Label", "value": '018'},
{ "label": "Another Label", "value": '020'}
]
var result = data.reduce(function(r, e) {
r[e.value] = e.label;
return r;
}, {})
console.log(result)
你可以使用Array#forEach
與價值觀爲重點打造的對象。
var data1 = [{ label: "Some Label", value: '018'}, { label: "Another Label", value: '020'}],
data2 = {};
data1.forEach(function (a) {
data2[a.value] = a.label;
});
console.log(data2);
它是跨瀏覽器兼容的嗎? – Lonely
它實際上是[支持](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Browser_compatibility)通過任何瀏覽器。 –
@Lonely - 總是閱讀文檔 – evolutionxbox
嘗試......
var data1 = [{
"label": "Some Label",
"value": '018'
}, {
"label": "Another Label",
"value": '020'
}];
var data2 = {};
for (i = 0; i <= data1.length - 1; i++) {
data2[data1[i].value] = data1[i].label;
}
console.log(data2);
試試這個,它應該工作正常
/** declare data1 */
const data1 = [
{
label: 'Some Label',
value: '018'
},
{
label: 'Another Label',
value: '020'
}
]
/** declare data2 */
const data2 = {}
/** loop data1 to get data2 value */
data1.forEach(item => {
data2[item.value] = item.label
})
console.log(data2)
是跨瀏覽器兼容? – Lonely
你可以在mdn上看到'瀏覽器兼容性' –
爲什麼在'map'上使用'reduce'? – evolutionxbox