Home > database >  Getting minimum index while ignoring element value in array
Getting minimum index while ignoring element value in array

Time:11-13

Say we have this array:

arr = [[3, 3], [3, 4], [3, 5], [3, 6]]

And we have this conditional:

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)
    }
}

There respective indexes would be 1 and 2, which would display in the console.log() in sequential order.

How would I grab the minimum index (1 in this case), specifically, from that? I cannot store the numbers in an array due to my use case, so I need to establish the minimum within the loop. And you can't really set a min number because you won't know which element index will be the smallest beforehand.

Is this possible or am I overthinking it hard?

CodePudding user response:

You can declare a variable outside the loop, then assign i to it and break the loop if the condition is true:

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)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

Alternatively, you can use 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)
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

  • Related