我有以下对象数组:
var array = [ {'a': '12', 'b':'10'}, {'a': '20', 'b':'22'} ];
如何向数组的所有对象添加新属性c = b - a
?
答案 0 :(得分:29)
使用forEach
功能:
var array = [{ 'a': '12', 'b': '10' }, { 'a': '20', 'b': '22' }];
array.forEach(function(e) { e.c = +e.b - +e.a });
document.write(JSON.stringify(array));
答案 1 :(得分:25)
你可以使用array.map,
你应该使用Number()将道具转换成数字来添加:
var array = [ {'a': '12', 'b':'10'}, {'a': '20', 'b':'22'} ];
var r = array.map( x => {
x.c = Number(x.b) - Number(x.a);
return x
})
console.log(r)
并且,在扩展运算符的支持下,更具功能性的方法是:
array.map(x => ({
...x,
c: Number(x.a) - Number(x.b)
}))