将属性值与地图添加到对象数组后更改属性值不起作用

时间:2018-07-26 07:51:32

标签: javascript angular typescript

我有一个对象数组: enter image description here

在数组中,我想向对象添加一个额外的属性。

我是通过map函数做到的:

returnArray = returnArray.map((obj) => {
obj.active = "false"; 
return obj;
});

enter image description here

后来我想在一个单独的函数中将新属性“ active”的值更改为新值(“ true”)。 但是由于某些原因,该值不会改变。

如果我更改了原始数组中某个属性的值,那么该值的确会更改。

var array = getarrayfunction();
array[index].active = "test";              <-- Does not work
array[index].originalProperty = "test";    <-- Does work

enter image description here

任何人都可以解释为什么以及如何解决此问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用引号(obj ['c'] =“ false”)如下将新属性分配给现有对象。 http://jsfiddle.net/xpvt214o/488358/

  var returnArray = [{'a':1,'b':'xxx'},{'a':1,'b':'true'}];

   $('button').click(function(){
     returnArray = returnArray.map((obj) => {
         obj['c'] = "false"; 
         return obj;
      });
      console.log(returnArray);
   })

  $('p').click(function(){
      returnArray[0]['c'] = 'test';
    console.log(returnArray);
  });