jsで配列を巡るいくつかの方法のまとめ
1、forEach
2、map
mapはforEachとほぼ似ていますが、mapはマッピングを表しています.つまり、一つ一つ対応しています.遍歴が完了すると新しい配列が返されますが、元の配列は変更されません.
3、filter
フィルタはフィルタという意味で、つまりフィルタです.注意:filterは各要素を遍歴し、各要素でマッチングし、trueを返すと回数を返し、最後に追加されたすべての要素を選択します.
4、reduce
reduceは左から右へ遍歴し、一般的に加減乗除用の計算に用いられる.reduce()メソッドは、関数をアキュムレータとして受信し、配列内の各値(左から右)を縮小し、最終的に値として計算します.注意:はreturn first+secondであり、実際にはreturn first+=secondに相当する.つまり毎回のfirstは前回と はfunction{}の後のパラメータであり、値があれば最初にロードされたときfirst=0である.second = 1;値がない場合はfirst=1、second=2です.後のパラメータが文字列である場合、文字列接合、 になります.
5、every(および)注意:配列内の各要素がcallback上でtrueを返すとtrueが返され、そうでない場合falseが返されます.
6、some(または)注意:配列の1つがcallback上でtrueを返す限り、trueを返す
var arr= [' ', ' ', ' '];
arr.forEach(function(v,k) {
console.log(v); // name
});
// :jquery each , :
$(arr).each(function(k,v){
console.log(v);
});
2、map
mapはforEachとほぼ似ていますが、mapはマッピングを表しています.つまり、一つ一つ対応しています.遍歴が完了すると新しい配列が返されますが、元の配列は変更されません.
var a1 = ['a', 'b', 'c'];
var a2 = a1.map(function(item,key,arr) {
return item.toUpperCase();
});
console.log(a1);// ['a','b','c'];
console.log(a2); //['A','B','C'];
:map , , ,
3、filter
フィルタはフィルタという意味で、つまりフィルタです.注意:filterは各要素を遍歴し、各要素でマッチングし、trueを返すと回数を返し、最後に追加されたすべての要素を選択します.
var a1 = [1,2,3,4,5,6];
var a2 = a1.filter(function(item) {
return item <= 3;
});
console.log(a2); // [1,2,3];
//filter , , true, ,
4、reduce
reduceは左から右へ遍歴し、一般的に加減乗除用の計算に用いられる.reduce()メソッドは、関数をアキュムレータとして受信し、配列内の各値(左から右)を縮小し、最終的に値として計算します.注意:
var a1 = [1, 2, 3];
var total = a1.reduce(function(first, second) {
return first + second;
},0);
console.log(total) // Prints 6
5、every(および)注意:配列内の各要素がcallback上でtrueを返すとtrueが返され、そうでない場合falseが返されます.
function isNumber(value){
return typeof value == 'number';
}
var a1 = [1, 2, 3];
console.log(a1.every(isNumber)); // logs true
var a2 = [1, '2', 3];
console.log(a2.every(isNumber)); // logs false
6、some(または)注意:配列の1つがcallback上でtrueを返す限り、trueを返す
function isNumber(value){
return typeof value == 'number';
}
var a1 = [1, 2, 3];
console.log(a1.some(isNumber)); // logs true
var a2 = [1, '2', 3];
console.log(a2.some(isNumber)); // logs true
var a3 = ['1', '2', '3'];
console.log(a3.some(isNumber)); // logs false