为什么map会改变对象数组的值?

7 浏览
0 Comments

为什么map会改变对象数组的值?

为什么map会改变对象数组?

var obj = {
  items: [{
    value: 1,
    selected: true
  }, {
    value: 2,
    selected: false
  }]
};
var items = obj.items.map(i => {
  if (i.value === 2) i.selected = true;
  return i;
});
console.log(obj);

为什么map会改变对象数组?

这段代码中,我们使用map函数对obj.items进行遍历并进行了一些操作。在遍历过程中,如果元素的value属性等于2,我们将其selected属性设置为true。最后,我们将操作后的新数组赋值给items变量,并打印obj对象。由于map函数会返回一个新数组,而不是原始数组的引用,所以原始数组obj.items没有被改变。

0