javascript - 拼接临时数组会修改主数组

标签 javascript jquery arrays

当我在temp上使用splice时,mainArray也被修改了,这是正常的吗?

console.log(mainArray);

var temp = mainArray;

temp.airfares.splice(index, 1);

最佳答案

这是因为 temp 不是一个全新的数组,只是对 mainArray 的引用。您需要复印一份。

使用 Array.prototype.slice() 轻松复制数组常见。请注意,它不会复制每个元素,但会复制数组本身(因此您可以稍后推送或删除元素)。

例如:

var data = [1, 2, 3, 4, 5];
document.getElementById("original").textContent = JSON.stringify(data);

var ref = data;
var copy = data.slice();

// Add some values to data, ref will change but copy won't
data.push(6, 7, 8);

document.getElementById("ref").textContent = JSON.stringify(ref);
document.getElementById("copy").textContent = JSON.stringify(copy);
<pre id="original"></pre>
<pre id="ref"></pre>
<pre id="copy"></pre>

关于javascript - 拼接临时数组会修改主数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28200260/

相关文章:

javascript - 目标页面在没有浏览器页面加载的情况下更改其 URL。如何让我的用户脚本仅在该站点的选定页面上触发?

javascript - 如何在 react 中从数据库呈现 HTML?

javascript - 动态填充 JSON 层次结构

javascript - Jquery 或 Javascript 动画 Z-索引

javascript - 将数据从 Chrome 扩展发送到本地 python 文件

javascript - Bootstrap scrollspy 与 ng-show 不能很好地配合

javascript - jquery 每个选择器都不起作用

javascript - 将给定值与多维数组进行比较

php - 关联数组 - 动态创建 (CodeIgniter)

arrays - 最高百分比增加