忽略数组中的元素值时获取最小索引

Posted

技术标签:

【中文标题】忽略数组中的元素值时获取最小索引【英文标题】:Getting minimum index while ignoring element value in array 【发布时间】:2021-12-25 01:59:31 【问题描述】:

假设我们有这个数组:

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)
    

各自的索引为12,它们将按顺序显示在console.log()中。

我将如何获取最小索引(在这种情况下为1),具体来说,如何从中获取?由于我的用例,我无法将数字存储在数组中,因此我需要在循环中建立最小值。而且您不能真正设置最小数字,因为您不会事先知道哪个元素索引将是最小的。

这可能还是我想多了?

【问题讨论】:

听起来很适合findIndex。一旦找到第一个结果,它就会返回索引。 i = arr.findIndex(a =&gt; a[0] === 3 &amp;&amp; a[1] === 4 || a[0] === 3 &amp;&amp; a[1] === 5) 【参考方案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)

【讨论】:

我知道这很简单......非常感谢 - 这非常有效。

以上是关于忽略数组中的元素值时获取最小索引的主要内容,如果未能解决你的问题,请参考以下文章

最小值索引,不包括负值

在 Julia 中返回数组中的最小索引

获取数组中 n 个最小元素的索引

SwiftUI ForEach 获取二维数组中的元素和索引

Hive 检查数组中的元素并获取索引

找出元素在排序后数组中的索引