我有一个包含id
和des
元素的数组。我想在value:0
中添加array
之类的额外元素。所以我用循环尝试了它并完成了它。
let data = [
{
"id": 1001,
"des": "aaa"
},
{
"id": 1002,
"des": "aaa"
}
];
for (let i = 0; i < data.length; i++) {
let tempObj = {
"id": data[i].id, "des": data[i].des, "value": 0
}
data[i] = tempObj;
}
有可能没有循环吗?在javascript中,任何JavaScript函数都可用吗?
答案 0 :(得分:1)
如果没有循环,则无法执行此操作,但您可以使用Array#map
方法和Object.assign
方法(或使用spread syntax in ES6)来简化代码。
let data = [{
"id": 1001,
"des": "aaa"
}, {
"id": 1002,
"des": "aaa"
}
];
var res = data.map(o => Object.assign({
value: 0
}, o));
console.log(res);
// or alternatively you can use spread syntax
var res1 = data.map(o => ({ ...o, value: 1 }));
console.log(res1);
答案 1 :(得分:1)
您可以使用map
(循环并转换数组的每个元素)和扩展运算符(...
- 允许您轻松地将对象的所有属性复制到新对象):
data.map(x => ({ ...x, value: 0 }));
答案 2 :(得分:1)
您可以在数组上map
并使用spread operator syntax
let data = [{
"id": 1001,
"des": "aaa"
},
{
"id": 1002,
"des": "aaa"
}
];
data = data.map(obj => ({...obj, value: 0}))
console.log(data)