gpt4 book ai didi

javascript - 获取数组中具有多个位置的值的索引

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

美好的一天,我目前正在寻找一种方法来查找任何数组中某个值的所有索引。该值可能在该数组中出现多次。我可以使用 .includes.indexOf 只找到第一个位置,比如

function indexOfValue(needle, hayStack) {
if(hayStack.includes(needle)) {
return hayStack.indexOf(needle);
}
}
console.log(indexOfValue(12, [12, 1, 3, 3, 6, 12]));

但是这记录只有指针第一个位置的

这就是我试图获取所有index

function indexOfValue(needle, hayStack) {
let result = [];
for(let i = 0; i < hayStack.length; i++) {
if (hayStack.includes(needle)) {
return result.push(hayStack[i]);
}
return result;
}
}
console.log(indexOfValue(12, [12, 1, 3, 3, 6, 12]));

但由于某些原因,上面的代码返回 1 而不是 [0,5]。请问这个特定代码有什么问题,我该如何解决?

最佳答案

返回 result.push 会缩短迭代时间,甚至不包括索引。而是检查每个元素是否等于指针,如果相等则压入索引。

function indexOfValue(needle, hayStack) {
let result = [];
for(let i = 0; i < hayStack.length; i++) {
if (hayStack[i] === needle) { // check if matching
result.push(i); //push the index
}
} return result; //return result at end
}
console.log(indexOfValue(12, [12, 1, 3, 3, 6, 12]))

关于javascript - 获取数组中具有多个位置的值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54729917/

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