jsにおけるmap()、some()、every()、filter()の違い
8078 ワード
jsのArayオブジェクトは、map、some、every、filterのいくつかの方法がありますが、配列内の各オブジェクトを処理することができます.しかし、彼らの間の機能はまた違っていますので、メモしてください. map():関数処理配列の各要素を指定し、処理後の配列を返します.
入ってきたfunctionは、自分の3つの形を持つことができます.current Value、index、arrは、それぞれ現在の要素、要素索引、要素が対象となります.その中でcurrent Valueが必要です.
注意:mapは元の配列を変えません.mapは空の配列を検査しません. some():配列内の要素が指定条件(関数提供)を満たしているかどうかを検出するための every:配列のすべての要素が指定された条件に一致するかどうかを検出するための
配列内の要素が満たされていないことが検出された場合、式全体はfalseに戻り、残りの要素は再検出されません.すべての要素が条件を満たすと、trueに戻ります.function形参同上の注意:everyは元の配列を変えられません.everyは空の配列を検査しません. filter:新しい配列を作成します.新しい配列の要素は指定された配列の中の条件に合致するすべての要素をチェックすることによって です.
var numbers = [4, 9, 16, 25];
function myFunction() {
console.log(numbers.map(Math.sqrt));
}
出力結果は:2,3,4,5
map()方法は、配列中の要素を順次方法に導入し、方法の戻り結果を新しい配列で返します.入ってきたfunctionは、自分の3つの形を持つことができます.current Value、index、arrは、それぞれ現在の要素、要素索引、要素が対象となります.その中でcurrent Valueが必要です.
注意:mapは元の配列を変えません.mapは空の配列を検査しません.
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
console.log(ages.some(checkAdult));
}
:true
someメソッドは順番に配列の各要素を実行します.条件を満たす要素がある場合、表現はtrueに戻り、残りの要素は再検出を実行しません.条件を満たす要素がない場合、false functionに戻ります.mapと同じように注意してください.そして元の配列は変更されません.そして、空の配列は確認されません.1 var ages = [32, 33, 16, 40];
2
3 function checkAdult(age) {
4 return age >= 18;
5 }
6
7 function myFunction() {
8 console.log(ages.every(checkAdult));
9 }
:false
everyとsomeは正反対です.配列内の要素が満たされていないことが検出された場合、式全体はfalseに戻り、残りの要素は再検出されません.すべての要素が条件を満たすと、trueに戻ります.function形参同上の注意:everyは元の配列を変えられません.everyは空の配列を検査しません.
1 var ages = [32, 33, 16, 40];
2
3 function checkAdult(age) {
4 return age >= 18;
5 }
6
7 function myFunction() {
8 console.log(ages.filter(checkAdult));
9 }
出力結果:32,33,40
filterは関数のフィルタ条件によって戻ります.結果は新しい行列を作って返します.