gpt4 book ai didi

javascript - 无法在给定数组索引处插入数字

转载 作者:行者123 更新时间:2023-12-03 09:26:54 24 4
gpt4 key购买 nike

有人可以向我解释一下为什么我的代码不起作用吗?

它应该将第二个参数 (3) 放在 arr ([1,5]) 之间。但 JS 唯一告诉我的是“3”。

function where(arr, num){
for(var i=0;i<arr.length;i++){
if(arr[i] < num){
slice(arr[i+1,0,num])
}
else if(arr[i] > num){
slice(arr[i+1,0,num])
}
}
return arr;
}
where = ([1, 5],3);

请注意,我刚刚开始学习 JS,所以我的知识有限。非常感谢任何建议或帮助。

最佳答案

这里有一些问题。

  1. 方法必须通过数组调用。即 arr.slice()slice(...) 会抛出错误。
  2. slice 不会添加到数组中。它从数组中删除。您需要使用splice
  3. 像您一样在此处使用 for 循环并不是最好的方法,因为它会在您插入元素后继续运行。本质上,您想将元素插入到有序列表中?如果是这样,请在插入元素后立即使用 return 退出该函数或使用 break

您的函数可能如下所示:

function where (arr, num) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
// Inserts num at i
arr.splice(i, 0, num);
return arr;
}
}
// If it's the highest num, add to the end of the array.
arr.push(num);
return arr;
}

var newArray = where([1, 5], 3);

但是,您的问题有点不明确,因此如果您尝试在特定索引处插入元素,则可以直接使用 splice:

var arr = [1, 5];
// Inserts 3 at index of 1
arr.splice(1, 0, 3);
// arr becomes [1, 3, 5]

关于javascript - 无法在给定数组索引处插入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641866/

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