为什么map会改变对象数组的值?
- 论坛
- 为什么map会改变对象数组的值?
19 浏览
为什么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
没有被改变。