gpt4 book ai didi

javascript - 当我将子数组插入另一个数组时,为什么 JavaScript 会添加额外的方括号?

转载 作者:行者123 更新时间:2023-12-03 02:55:40 25 4
gpt4 key购买 nike

我正在研究涉及多维数组的 CodeWars kata。我有一个包含三个元素的数组。每个元素都是一个带有名称(字符串)和总和(数字)的数组。我正在检查数字。如果它们超过一定数量,我想删除具有该数字的子数组并将其放在数组的末尾。我使用了 splice() 和 push()。

在具有必须移动子数组的测试用例中,子数组被推到父数组的末尾。但是,它有一组额外的括号。我想知道为什么会发生这种情况。 JavaScript 是否会在推送时自动添加括号,因为父数组只有子数组作为元素?

这里是 Chrome 开发工具的一些屏幕截图和 CodeWars 的屏幕截图的链接。我将它们组合成一张图像。弹出窗口中索引 2 处的子数组显示了第一个屏幕截图中移动/推送的末尾的子数组。第二个屏幕截图显示了扩展 View 。我附加的最终屏幕截图是 CodeWars 中显示的结果,您可以在最后一个子数组上看到双括号。

我无法上传图片。所以,这里有一个在线链接。 https://sta.sh/01tp7y7zaayi

这是发生这种情况的代码部分。我包括了这种类型。但是,我认为这不会影响任何事情。

注意:我有一个循环来遍历这三个元素来检查它们的注释所在的位置。但是,我删除了它,因为不应该循环遍历数组并对该数组进行更改。我正在编写一个 map() 方法来返回一个新数组。但是,我注意到出现了双括号。所以,我没有完成map()部分。我试图首先弄清楚 splice()/Push() 部分中发生了什么。

var arrNew = [["Ben", sumBen], ["Amy", sumAmy], ["Sam", sumSam]];

arrNew.sort(function (a,b) {
if (a[1] < b[1]) return 1;
if (a[1] > b[1]) return -1;
if (a[0] > b[0]) return 1;
if (a[0] < b[0]) return -1;
return 0;
});

// If someone's score is over 21, move them to the back.
var forMoving = arrNew.splice(0, 1);
arrNew.push(forMoving);

最佳答案

关于javascript - 当我将子数组插入另一个数组时,为什么 JavaScript 会添加额外的方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47640508/

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