首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >non equals数组同时更改值javascript

non equals数组同时更改值javascript
EN

Stack Overflow用户
提问于 2018-08-30 04:40:42
回答 1查看 75关注 0票数 1

请检查以下内容...

代码语言:javascript
复制
var arr = [["test", 1], ["test", 3], ["test", 5]]
var otherArr = arr.slice(0) //should be a new array with a copy of arr

当我评估arr === otherArr时,结果是FALSE

当我执行以下操作时,尝试更改第一个数组值:

代码语言:javascript
复制
otherArr[0][1] = otherArr[0][1] + 5;

它还会更改原始数组(arr)

arr[0][1] === otherArr[0][1]的计算结果为TRUE

arr === otherArr的计算结果为FALSE

请帮助我理解这一点,以避免它。

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 04:48:13

这是因为数组是与slice()不同的对象

代码语言:javascript
复制
arr === otherArr // false (different objects)

但是存储在数组中的值是相同的对象

代码语言:javascript
复制
 arr[0][1] === otherArr[0][1] 

如果您不想要此行为,则需要对数组执行deep copy操作,而不是切片。

以下是与数组相关的deep copy的一些信息:https://www.cs.utexas.edu/~scottm/cs307/handouts/deepCopying.htm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52085758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档