' someModel 'と' everyAll ()を使用したJavaScript配列の反復処理


コード内の配列を使用している場合は、配列の値を反復処理する必要があります.あなたがそれを行うことができるいくつかの方法があります、いくつかのより良いとより効率的な他のあなたが達成したいものに応じて.
このポストのために、私は2つの方法に集中しますsome() and every() .
some()The some() このメソッドは、配列内の少なくとも1つの要素が、指定した関数によって実装されるテストを通過するかどうかをテストします.要素を1つずつチェックし、関数が真の値を返す配列要素を見つけます.some() リターンtrue と残りの値をチェックしません.Otherwise it returns false .
連絡先リストに連絡先が存在するかどうかを確認したいとします
const contacts = ['Stewie', 'Meg', 'Quagmire', 'Cleveland'];

function checkContacts(arr, val) {
  return arr.some(arrVal => val === arrVal);
}

checkContacts(contacts, 'Lois');   // false
checkContacts(contacts, 'Meg'); // true
チェックするときLois , some() で始まる配列要素をチェックするStewie 最後まで、マッチを見つけなかったfalse . チェックするときMeg , で止まるMeg 返り値true , 残りの要素を無視する.
every()このメソッドは、配列内のすべての要素が、指定した関数によって実装されたテストを通過するかどうかをテストします.要素を1つずつチェックし、関数がfalsy値を返す配列要素を見つけます.every() リターンfalse と残りの値をチェックしません.Otherwise it returns true .
私たちの連絡先リストのすべての名前が3文字以上であるかどうかを確認します
['Stewie', 'Meg', 'Quagmire', 'Cleveland'].every(contact => contact.length >= 4); // false
['Stewie', 'Megan', 'Quagmire', 'Cleveland'].every(contact => contact.length >= 4); // true
最初のテストリターンfalse 以来Meg 3文字しかない.注意:every() , 配列のすべての要素は、返すために真実でなければなりませんtrue . 変化Meg to Megan したがって、2番目のテストではtrue .
これらの2つの方法は、上記のようにいくぶん似たようなタスクを実行する必要がある場合に便利です.しかし、もちろん、彼らは唯一の方法ではない.誰かがこの便利なことを見つけてくれませんか!:)