はじめに
reactでコードを書いていると、配列を使った実装が多いなぁと感じます。(reactだけじゃないかもしれませんが)
今回は、配列の中に指定した値が存在しているかチェックする必要があったため調べて実装したことを備忘録として残そうと思います。
前提
自分のコードをそのままコピペすると前提説明が長くなりそうなので簡単な例を作りました。
例として、下記のような果物の連想配列があるとします。
ゴールはfruitsのnameの値に"apple"があれば、trueを返すコードを実装することです。
const fruits = [{name: "apple", price: 200,}, {name: "lemon", price: 100,}, {name: "orange", price: 300}]
someメソッドを使用する
下記のsomeメソッドを使用すれば簡単にコードを書くことができます。
someメソッドは、指定された関数のなかで一つでもtrueを返した場合はtrueを返し、それ以外はfalseを返します。
array.some(arr => ~ )
//他にも引数を指定できますが、今回は割愛します
実際のコード
someメソッドを使用して下記のように記述をすれば、fruitsのnameの値に"apple"あればtrueを返してくれます。
もちろん配列に値が存在しない場合はfalseを返してくれます。
const fruits = [{name: "apple", price: 200,}, {name: "lemon", price: 100,}, {name: "orange", price: 300}]
const checkFruits1 = fruits.some(fruit => fruit.name === "apple")
console.log(checkFruits1)
//=> true
const checkFruits2 = fruits.some(fruit => fruit.name === "banana")
console.log(checkFruits2)
//=> false
終わりに
配列の存在チェックに使えるメソッドは他にも"indexOf"や"includes"メソッドなどがあります。
色々な場面に即した実装ができるようになるために、またの機会に他のメソッドもまとめて理解を深めようと思います。
参考