【JavaScript】配列の任意の1つ以上の要素が条件に合致するか判定する【some】

【JavaScript】配列の任意の1つ以上の要素が条件に合致するか判定する【some】

はじめに

コジマです。

配列のどれか1つ以上の要素が条件に合致するか判定したいな、と思うときありますよね。

例えば、5つの要素のうち1つでも100以上だったらエラーにしたい。
みたいな。

パッと考えられるのはforEachで回して1個以上条件に合致したら…
という方法かと思います。

サンプルを見てみましょう。

forEachのサンプル

/** 100以上の要素があるとエラーとなるプログラム */
// 103がエラーとなる
const numbers = [10, 34, 88, 103, 51]

// エラーがある(条件に合致する)ときtrueとなる
// falseで初期化しておく。
let errFlag = false
numbers.forEach(e => {
  // エラーがあればフラグ立てる
  if(e >= 100){
    errFlag = true
  }
})

if(errFlag){
  console.log('エラーです。') // こちらが出力される
}else{
  console.log('OKです。')
}

これでもいいのですが、some関数を使うともっとすっきり書くことができます。

someのサンプル

/** 100以上の要素があるとエラーとなるプログラム */
// 103がエラーとなる
const numbers = [10, 34, 88, 103, 51]

// エラーがある(条件に合致する)ときtrueとなる
let errFlag = numbers.some(e => 
  e >= 100
)

if(errFlag){
  console.log('エラーです。') // こちらが出力される
}else{
  console.log('OKです。')
} 

さいごに

someの公式リファレンス貼っておきます。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/some

引き出しは多い方がいいですよね。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

JavaScriptをもっと学びたいエンジニアのためにおすすめのUdemy講座を紹介いたします!

JavaScript初心者向けの講座です。
HTML、CSSと合わせて学ぶことができます。
フロントエンド開発の基本的な知識を網羅的に学ぶことができます。
個人的には著作権表記についても触れているところが推せますね。
ウェブ開発入門完全攻略コース – HTML/CSS/JavaScript. プログラミングをはじめて学び創れる人へ!

JavaScriptをより深く学びたい人はこちらがおすすめです。
JavaScript初心者を脱するとよりよいコードを書かなければなりません。
つまずきがちなオブジェクト操作や、非同期処理の仕組みについて学ぶこともできるため、JavaScriptの仕組みから深く学ぶことができます。
【JS】ガチで学びたい人のためのJavaScriptメカニズム

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


JavaScriptカテゴリの最新記事