我有一个如下所示的对象数组

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
1:Object
       id=2     
       name:'david'

我想为这个对象数组的每个元素添加一个名为Active的属性。

最终结果应该如下所示。

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
       Active: "false"
1:Object
       id=2     
       name:'david'
       Active: "false"

有人能告诉我如何实现这一点吗?


当前回答

  Object.defineProperty(Results, "Active", {value : 'true',
                       writable : true,
                       enumerable : true,
                       configurable : true});

其他回答

它作为键值结构遍历对象。然后,它将添加一个名为“Active”的新属性,并为该属性(“Active”)的示例值添加到该对象内部的每个对象。这段代码可以应用于对象的数组和对象的对象。

   Object.keys(Results).forEach(function (key){
            Object.defineProperty(Results[key], "Active", { value: "the appropriate value"});
        });

可以使用forEach方法对数组中的每个元素执行一次所提供的函数。在这个提供的函数中,您可以向元素添加Active属性。

Results.forEach(function (element) {
  element.Active = "false";
});

你可以用map或foreach来做。 foreach有很多答案,所以我将讲述如何使用map。

  let new_array=array.map(function(ele){
       
       return {...ele,Active:'false'};
     })

如果你不想有一个新的数组,而是改变它,你可以使用foreach。但是如果你像我一样固执,想用map改变它,你可以这样做:

array.map(function(ele){
       
       return ele.Active='false';
     });

使用Array.prototype.map ()

Results.map(obj => ({ ...obj, Active: 'false' }))

有关更多信息,请阅读文档。

使用ES6,你可以简单地做:

 for(const element of Results) {
      element.Active = "false";
 }