在忽略数组中的元素值的同时获取最小索引
Getting minimum index while ignoring element value in array
假设我们有这个数组:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
我们有这个条件:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
for(let i = 0; i < arr.length; i++){
if (arr[i][0] === 3 && arr[i][1] === 4 || arr[i][0] === 3 && arr[i][1] === 5){
console.log(i)
}
}
各自的索引为1
和2
,它们将按顺序显示在console.log()
中。
我如何从中获取最小索引(在本例中为 1
)?由于我的用例,我无法将数字存储在数组中,因此我需要在循环中建立最小值。而且你不能真正设置最小值,因为你事先不知道哪个元素索引是最小的。
这可能吗,还是我想多了?
您可以在循环外声明一个变量,然后将i
赋值给它,如果条件为真则中断循环:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
var ind = 0
for(let i = 0; i < arr.length; i++){
if (arr[i][0] === 3 && arr[i][1] === 4 || arr[i][0] === 3 && arr[i][1] === 5){
ind = i;
break;
}
}
console.log(ind)
或者,您可以使用 Array.findIndex
:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
var ind = arr.findIndex(e => e[0] === 3 && e[1] === 4 || e[0] === 3 && e[1] === 5)
console.log(ind)
假设我们有这个数组:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
我们有这个条件:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
for(let i = 0; i < arr.length; i++){
if (arr[i][0] === 3 && arr[i][1] === 4 || arr[i][0] === 3 && arr[i][1] === 5){
console.log(i)
}
}
各自的索引为1
和2
,它们将按顺序显示在console.log()
中。
我如何从中获取最小索引(在本例中为 1
)?由于我的用例,我无法将数字存储在数组中,因此我需要在循环中建立最小值。而且你不能真正设置最小值,因为你事先不知道哪个元素索引是最小的。
这可能吗,还是我想多了?
您可以在循环外声明一个变量,然后将i
赋值给它,如果条件为真则中断循环:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
var ind = 0
for(let i = 0; i < arr.length; i++){
if (arr[i][0] === 3 && arr[i][1] === 4 || arr[i][0] === 3 && arr[i][1] === 5){
ind = i;
break;
}
}
console.log(ind)
或者,您可以使用 Array.findIndex
:
arr = [[3, 3], [3, 4], [3, 5], [3, 6]]
var ind = arr.findIndex(e => e[0] === 3 && e[1] === 4 || e[0] === 3 && e[1] === 5)
console.log(ind)