将属性添加到数组中的所有对象

时间:2016-04-17 14:27:08

标签: javascript

我有以下对象数组:

var array = [ {'a': '12', 'b':'10'}, {'a': '20', 'b':'22'} ];

如何向数组的所有对象添加新属性c = b - a

2 个答案:

答案 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)
}))