gpt4 book ai didi

Javascript 将数组插入数组,但改为连接

转载 作者:行者123 更新时间:2023-12-02 13:57:31 24 4
gpt4 key购买 nike

我正在尝试将一个数组(多次)推送到另一个数组中。我将多次推送尝试中的所有值作为单个数组获取,而不是数组的数组。我尝试过隐式推送数组(即 push([val1,val2]),显式创建一个新数组,然后推送新数组。以下是代码的关键部分:

var coordinates=[];
...
for(i=0;i<6;i++)
{
...
for(var j=start;j<circum[i].length;j++)
{
var segmentCoords=[];
...
if(segmentFlag===false)
{
segmentCoords.push([i+1,segmentLength]);
segmentFlag=true;
}
...
if(segmentFlag===true)
{
var tempArray=new Array(i+1,segmentLength);
segmentCoords.push(tempArray);
segmentLength+=sectorLength;
coordinates.push(segmentCoords);
segmentFlag===false;
}
...
}

从我看过的许多 stackoverflow 问题/答案中,我希望我的坐标数组看起来像这样:[[val1, val2],[val3,val4],[val5,val6]]。相反,它是[val1,val2,val3,val4,val5,val6]。如果我使用 .concat().apply(),这就是我所期望的。

谁能解释一下为什么我的代码没有生成数组数组?

我在这里有完整的代码 https://jsfiddle.net/Seytom/7xm9s4qr/如果您想了解更多内容。

最佳答案

你似乎被你的console.log愚弄了。请注意这两个语句之间的区别:

console.log( 'string ' + [[1,2],[3,4]] ); // string, '1,2,3,4'

console.log( 'string ', [[1,2],[3,4]] ); // string, [[1,2],[3,4]]

因为您将数组强制转换为字符串,所以这就是结果。其等同于:

console.log( new Array([1,2],[3,4]).join(',') ); // 1,2,3,4

这就是数组在连接时所做的事情,无论它们是否嵌套。最好单独记录数组,以便您可以在控制台中探索它,因此只需打印字符串,然后将数组添加为第二个参数即可。 (控制台接受无限数量的参数,并将它们全部打印为一个语句 - safari 甚至将第一个打印为特殊类型(如果它是字符串),以便更清晰地阅读)。

简而言之:push 的行为完全符合预期,并且您的代码应该按预期工作,但打印到控制台似乎还有一些不足之处:)。

关于Javascript 将数组插入数组,但改为连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40609511/

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