es6中find函数,我对result操作,为什么arr会改变呢?
发布于 7 年前 作者 zhangqiang 4929 次浏览 来自 问答
let arr=[
        {id:1,username:"张三",age:18,sex:"男"},
        {id:2,username:"李四",age:18,sex:"男"},
        {id:3,username:"王五",age:45,sex:"男"},
        {id:4,username:"赵六",age:16,sex:"男"}
    ]
    //定义一个新变量result
    let result=arr.find((item)=>{
        return item.id==1;
    })
    //对result的age+1
    result.age += 1
    //为什么arr中的数据会发生改变呢?
    console.log(arr)

我定义了一个新的变量result,并对result进行操作,为什么arr的内容会改变呢?

2 回复

它还就该会改变,JS规定的。

建议看一下js的深拷贝与浅拷贝

回到顶部