gpt4 book ai didi

javascript - 在 JavaScript 中删除数组内容时规避引用

转载 作者:行者123 更新时间:2023-11-28 01:07:44 24 4
gpt4 key购买 nike

我通过将数组存储为单个数组中的日志条目来实现一个简单的日志记录机制。代码的工作原理如下:

var myarr = new Array();
var secondarr = new Array(4,5,6);
myarr.push(secondarr);
secondarr.length=0;
secondarr.push(5,5,5);
myarr.push(secondarr);
secondarr.length=0;

//check
for(var i = 0; i < myarr.length; i++){
var str="";
for(var j = 0; j < myarr[i].length; j++)
str+=myarr[i][j]+" ";

console.log(str);
}

我正在创建单个数组 myarr,其中存储日志项。 secondarr 存储要记录的数据。因为我不想每次将某些内容记录到 myarr 时都创建一个新数组,所以我想通过 secondarr.length=0< 来设置 secondarr/.

但是,由于引用,这也会删除 myarr 中的所有内容!

有没有办法避免为每个日志创建新数组?如果我推送 secondaryarr.slice() ,该方法当然有效,但这会导致多个数组,这是我试图避免的。

最佳答案

将每个 secondarr.length=0; 替换为 secondarr=[];。第一条指令修改 secondarr 引用的数组的 length 属性。第二个使得 secondarr 现在引用一个新的空数组。

无论如何,您都必须为要存储的每个日志创建一个新数组。

关于javascript - 在 JavaScript 中删除数组内容时规避引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com