Javascript Array Some Method

Johnny Simpson - Jan 28 '23 - - Dev Community

I've already covered in another article the Javascript every method. It's useful for when checking if every element matches a certain criteria. The some method differs in that it checks if only 'some' elements pass a criteria. If some do, then the expression will return true overall. For this function, some means anything more than 1 - so if even one element matches the criteria you define, the expression will return true.

Let's look at an example:

let myArray = [ 5, 10, 15, 20, 25, 30 ]
let checkArray = myArray.some((x) => (x / 5) > 3)
// Returns true, since some elements, when divided by 5, return a number greater than 3
console.log(checkArray)
Enter fullscreen mode Exit fullscreen mode

The some method takes one callback function, which can have 3 different arguments:

  • element - the element being iterated over. In the example above, I've named it x.
  • index - the index of array element we are iterating over currently.
  • array - the entire original array.

some works like a loop - it loops over every element and checks if the callback function you gave returns true for any of them. element and index let us check each element individually in our function, while array gives us easy access to the original array. Here is an example with all three:

let myArray = [ 5, 10, 15, 20, 25, 30 ]
let checkArray = myArray.some((el, index, array) => {
    if(el / 5 > 3 && index > 4 && array.length === 6) {
        return true
    }
})
// Returns true since all checks are true for "some" elements
console.log(checkArray)
Enter fullscreen mode Exit fullscreen mode

If one element in some passes the test, then the function will stop - meaning it is quite an efficient way of testing if some array elements pass certain tests.

One Line statements with some

Earlier, you might have noticed we did this:

let myArray = [ 5, 10, 15, 20, 25, 30 ]
let checkArray = myArray.some((x) => (x / 5) > 3)
// Returns true, since some elements, when divided by 5, return a number greater than 3
console.log(checkArray)
Enter fullscreen mode Exit fullscreen mode

... and even though we did not return true, the statement is still true. That is because one line functions when defined without curly brackets will return the result of a statement automatically. In this case, (x / 5) > 3 is returned by default, resulting in true.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .