假设我有以下数组结构:
strings.Split(reqToken, "Bearer ")
我想将参数名称更改为以下内容:
"stores" : [
{
id: 1,
name: 'lopd',
},
{
id: 2,
name: 'abc'
}
]
我将如何在ES6中执行此操作?
答案 0 :(得分:4)
您可以使用map
功能执行以下操作:
let example = {
"stores" : [
{
id: 1,
name: 'lopd',
},
{
id: 2,
name: 'abc'
}
]
}
let answer = example.stores.map(item => {
return {
value: item.id,
label: item.name
}
})
console.log(answer)
答案 1 :(得分:4)
您可以将destructuring assignment与object property assignment pattern和short hand properties一起使用。
var stores = [{ id: 1, name: 'lopd' }, { id: 2, name: 'abc' }];
stores = stores.map(({ id: value, name: label }) => ({ value, label }));
console.log(stores);

答案 2 :(得分:1)
仅仅为了完整起见,虽然我实际上会使用Nina's answer:如果你想真正修改原始对象,你可以创建新的属性,delete
你想要丢弃的属性。 / p>
var obj = {
stores: [{
id: 1,
name: 'lopd',
},
{
id: 2,
name: 'abc'
}
]
}
console.log(obj.stores);
obj.stores.forEach(function(val) {
val.value = val.id;
val.label = val.name;
delete val.id;
delete val.name;
});
console.log(obj.stores);

它可能并不重要(或者在大多数情况下),但这是保留原始对象的唯一方法。其他解决方案用新的替换阵列中的整个对象......
另外:这是ES5所以它可以在旧版浏览器中使用(即IE9)
答案 3 :(得分:0)
您也可以使用以下方法创建新数组:
示例:强>
var data = [{id: 1, name: 'lopd'}, {id: 2, name: 'abc'}];
var result = Array.from(data, obj => ({value: obj.id, label: obj.name}));
console.log(result);