DEV Community

Cover image for JavaScript some() method

JavaScript some() method

dailydevtips1 profile image Chris Bongers Originally published at ・1 min read

Did you ever need to know if one of the elements in an array passed a test?

This is where the some() method comes in handy.

Let's keep using our product array, but let's add a discounted product.

We then want to test if some of our products are discounted.

Using the Javascript some() method

Let's start by creating an array of items.

const items = [
  { name: 'T-shirt plain', price: 9, discount: true },
  { name: 'T-shirt print', price: 20 },
  { name: 'Jeans', price: 30 },
  { name: 'Cap', price: 5 }
Enter fullscreen mode Exit fullscreen mode

Now let's use the some() method to test if we have a discounted product in our array.

const discounted = items.some(item => {

// Returns true
Enter fullscreen mode Exit fullscreen mode

If we now remove the discount on our item, it will return false.

Another use case might be that you need to check if all people are under a certain age.

const users = [
  { name: 'Bob', age: 60 },
  { name: 'Sarah', age: 20 },
  { name: 'Billy', age: 18 },

const ageRestriction = users.some(user => {
  return user.age <= 18;

// Returns true
Enter fullscreen mode Exit fullscreen mode

This return true, because billy is under the age of 18!

The syntax for some is as follows:

const new = original.some(function(value));
Enter fullscreen mode Exit fullscreen mode

Inside our function, we can check on certain properties the value has.

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Discussion (4)

Editor guide
pedroview profile image
Maduekwe Pedro

I love this post, but I don't think the second answer will be true since its < and not <= you used there

defite profile image
Nikita Makhov

Yep. It will be false.

dailydevtips1 profile image
Chris Bongers Author

Ah woops, yes should be <= my bad.

j23saw profile image

True, OP please edit the post