我有一些带有某些属性的对象数组。我想对对象属性做一些数学运算,并希望也返回一个数组。我试过了,似乎没有用。array.map(el => { el.count * 2; return el})array = [{ count: 4, string: 'randomstring'}, { count: 9, string: 'randomstring'}, { count: 7, string: 'randomstring'}, { count: 12, string: 'randomstring'}]预期的array = [{ count: 8, string: 'randomstring'}, { count: 18, string: 'randomstring'}, { count: 14, string: 'randomstring'}, { count: 24, string: 'randomstring'}]
3 回答
繁星coding
TA贡献1797条经验 获得超4个赞
el.count * 2;不会改变el.count您可以为其分配值的值,就像
el.count = el.count * 2;
但这会带来另一个问题。它将更改原始数据。因此最好count使用Spread Operator返回具有修改后属性的新对象
let array = [{ count: 4, string: 'randomstring' }, { count: 9, string: 'randomstring' }, { count: 7, string: 'randomstring' }, { count: 12, string: 'randomstring' }]
let res = array.map(el => ({...el,count:el.count*2}));
console.log(res);
你也可以 Object.assign()
let res = array.map(el => Object.assign({count:el.count*2}));
陪伴而非守候
TA贡献1757条经验 获得超8个赞
无需显式更改对象的值(这就是为什么我们首先使用map,filter和reduce的原因):
array.map(({ count, string }) => (
{ count: count * 2, string }
));
添加回答
举报
0/150
提交
取消