我确信这是一件愚蠢的事情,但我无法解决它。
如果我这样做:
var arr = [1, 2, 3, "up"];
var duplicate = arr;
duplicate[3] = "down";
console.log(arr[3]); //"down"
console.log(duplicate[3]); //"down"
Run Code Online (Sandbox Code Playgroud)
那么为什么原始数组也被修改了呢?这与它们指向同一个数组有关吗?
如何只修改重复项?
您需要克隆您的duplicate数组...您可以使用以下slice()方法来做到这一点:
var arr = [1, 2, 3, "up"];
var duplicate = arr.slice(0);
duplicate[3] = "down";
console.log(arr[3]); //"up"
console.log(duplicate[3]); //"down"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3802 次 |
| 最近记录: |