对象数组上的forEach / map不添加属性

时间:2019-03-14 16:08:14

标签: javascript arrays object foreach

我有一个对象数组。我想向该数组中的所有对象添加两个新属性。 对象在数组中的位置和数组的长度。

我的代码是:

file:

在forEach循环中,添加了属性。我可以在蜂鸣时打印它们。但是在循环完成后,属性消失了。

如果尝试了Add property to an array of objects,但是forEach和.map都不起作用。

我也尝试过:

 objArr.forEach(function(element) {
        element.data.basics.all= objArr.length, 
        element.data.basics.position= objArr.indexOf(element), 
    });

 objArr.forEach(function(element) {
        element.data.basics.all= objArr.length, 
        element.data.basics.position= objArr.indexOf(element), 
        return element
    });

并且在所有情况下我都尝试使用箭头功能,所以...... objArr.forEach((element)=> {...})

1 个答案:

答案 0 :(得分:0)

它与forLoop一起正常工作,添加了新属性。

var array = [
        { person: { age: 76 }, state: 'ka' },
        { person: { age: 87 }, state: 'ap' },
        { person: { age: 45 }, state: 'tn' }
    ];
    array.forEach(function(element, index){
        element.person.length = array.length;
        element.person.index = index;
    });
    console.log(array)