【问题标题】: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)

标签: javascript arrays loops min


【解决方案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)

【讨论】:

  • 我知道这很简单......非常感谢 - 这非常有效。
猜你喜欢
  • 2011-02-16
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2018-04-18
  • 2013-08-10
  • 2022-08-16
相关资源
最近更新 更多