【问题标题】:Javascript array explication [duplicate]Javascript数组解释[重复]
【发布时间】:2017-01-09 05:17:42
【问题描述】:

鉴于这两个数组 ab

var a = [1,2,3];
var b = a;
a.push(4);

console.log(b); /* [1,2,3,4]  */
console.log(a); /* [1,2,3,4]  */

为什么 b 不等于 [1,2,3] ?

【问题讨论】:

标签: javascript


【解决方案1】:

变量b 保存对数组a 的引用。您需要复制数组,而不是使用 Array#slice 方法进行复制。

var a = [1, 2, 3];
var b = a.slice();
a.push(4);

console.log(b);
console.log(a);

【讨论】:

  • 所以,为了等于[1,2,3](数组a的初始值),我假设我必须克隆它吗?
  • @webenergy:是的,你需要。如果元素是对象,那么您需要更深入地克隆
  • 谢谢您的信息先生,我会在~10分钟内接受您的答复
猜你喜欢
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 2019-01-19
相关资源
最近更新 更多