映射将不接受键的点符号,如何将键从对象数组映射到新对象中的键?例如,我想转换:
这个
searchRsults = [{ _id: 'qEJBC9gED8knEKhHF',
key: 'key1',
value: 1 },
{ _id: 'KeoMTbpuCeuQMH8LJ',
key: 'key2',
value: 5 },
{ _id: 'Foy5pXbDbtLABmCxC',
key: 'key3',
value: 4 }
]
对此
[{ _id: 'qEJBC9gED8knEKhHF',
key1: 1 },
{ _id: 'KeoMTbpuCeuQMH8LJ',
key2: 5 },
{ _id: 'Foy5pXbDbtLABmCxC',
key3: 4 }]
不起作用的示例...
get_settings = function(doc) {
return {
doc.key: doc.value
}
};
currentUserSettings = searchResults.settings.map(get_settings);
答案 0 :(得分:2)
您可以使用JS Array.Map原型实现此目的
只需使用方括号并传递值。
var data = [{
_id: 'qEJBC9gED8knEKhHF',
key: 'key1',
value: 1
},
{
_id: 'KeoMTbpuCeuQMH8LJ',
key: 'key2',
value: 5
},
{
_id: 'Foy5pXbDbtLABmCxC',
key: 'key3',
value: 4
}
]
var mappedData = data.map(function(item) {
return {
_id: item._id,
[item.key]: item.value
}
});
console.log(mappedData)