忽略数组中的元素值时获取最小索引
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)
各自的索引为1
和2
,它们将按顺序显示在console.log()
中。
我将如何获取最小索引(在这种情况下为1
),具体来说,如何从中获取?由于我的用例,我无法将数字存储在数组中,因此我需要在循环中建立最小值。而且您不能真正设置最小数字,因为您不会事先知道哪个元素索引将是最小的。
这可能还是我想多了?
【问题讨论】:
听起来很适合findIndex
。一旦找到第一个结果,它就会返回索引。
i = arr.findIndex(a => a[0] === 3 && a[1] === 4 || a[0] === 3 && 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)
【讨论】:
我知道这很简单......非常感谢 - 这非常有效。以上是关于忽略数组中的元素值时获取最小索引的主要内容,如果未能解决你的问题,请参考以下文章