将属性推送到数组中的所有JSON对象

Push an attribute to all JSON objects in an Array

本文关键字:JSON 对象 数组 属性      更新时间:2024-02-01

在javascript中,我有一个JSON对象数组;

var myArr = [{'attr1':1, 'attr2':2}, {'attr1':3, 'attr2':4}, {'attr1':5, 'attr2':6}]

我想向该数组中的所有JSON对象添加另一个属性"attr3"。如何在不使用myArr[x].attr3='val'的循环构造的情况下实现这一点?

我想要的最终结果是;

[{'attr1':1, 'attr2':2, 'attr3':'val'}, {'attr1':3, 'attr2':4, 'attr3':'val'}, {'attr1':5, 'attr2':6, 'attr3':'val'}]

您还可以使用Array#map()来编辑数组中的每个元素。

var myArr = [{ 'attr1': 1, 'attr2': 2 }, { 'attr1': 3, 'attr2': 4 }, { 'attr1': 5, 'attr2': 6 }];
myArr = myArr.map( function(e) {
    e.attr3 = 'val';
    return e;
} );
document.write("<pre>" + JSON.stringify(myArr, 0, 4) + "</pre>");

您可以使用Array#forEach()对数组进行迭代。

var myArr = [{ 'attr1': 1, 'attr2': 2 }, { 'attr1': 3, 'attr2': 4 }, { 'attr1': 5, 'attr2': 6 }];
myArr.forEach(function (a) {
    a.attr3 = 'val';
});
document.write("<pre>" + JSON.stringify(myArr, 0, 4) + "</pre>");