gpt4 book ai didi

javascript - 当数组的大多数值相同时如何避免访问相同的索引?看一看

转载 作者:行者123 更新时间:2023-12-03 00:11:29 24 4
gpt4 key购买 nike

我正在尝试解决与 javascript 算法相关的问题。问题就在这里。我想通过indexOf()方法访问数组值的索引。但我想知道当数组中的大多数值相同时如何避免相同的索引。举个例子:

让 arr1 = [0, 0, 0, 0, 1, 1];

现在您可以看到大多数值都是相同的,indexOf 方法在数组中查找给定值的索引。

arr1.indexOf(arr1[0]);//0
arr1.indexOf(arr1[5]);//5

因此,它会作为系统返回 0,但是当我要进一步访问下一个值时。喜欢:

arr1.indexOf(arr1[1]);//0
arr1.indexOf(arr1[6]);//5

它返回与之前相同的结果。但我想要下一个索引而不是相同的索引。例如:

arr1.indexOf(arr1[1]);//1

它应该返回 1,因为 0 已经返回过一次。那么,有什么办法解决这个问题呢?

最佳答案

indexOf有第二个参数,起始索引。

你可以这样做:

let arr1 = [0, 0, 0, 0, 1, 1];
console.log(arr1.indexOf(arr1[1], 1)); // 1

<小时/>

编辑

如果您希望所有索引都为特定值,例如0,您可以这样做:

let arr1 = [0, 0, 0, 0, 1, 1];

function getAllIndexes(arr, val) {
var indexes = [],
i = -1;
while ((i = arr.indexOf(val, i + 1)) != -1) {
indexes.push(i);
}
return indexes;
}

var indexes = getAllIndexes(arr1, 0);

console.log(indexes);

使用此脚本,您可以获得一个数组,其中包含数组中值的所有索引。

脚本引用:https://stackoverflow.com/a/20798567/3083093

关于javascript - 当数组的大多数值相同时如何避免访问相同的索引?看一看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54706438/

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