map():返回一個新的Array,每個元素為調(diào)用func的結(jié)果。新數(shù)組的長度和原來的是一樣的,他只不過是逐一對原來數(shù)據(jù)里的每個元素進(jìn)行操作。
filter():返回一個符合func條件的元素數(shù)組。篩選條件,把數(shù)組符合條件的放在新的數(shù)組里面返回。新數(shù)組和原來的數(shù)組長度不一定一樣。
some():返回一個boolean,判斷是否有元素是否符合func條件。數(shù)組里面所有的元素有一個符合條件就返回true。
every():返回一個boolean,判斷每個元素是否符合func條件。數(shù)組里面所有的元素都符合才返回true。
forEach():沒有返回值,只是針對每個元素調(diào)用func 。循環(huán)數(shù)組。和for的用法一樣的。
every 當(dāng)內(nèi)部return false時跳出整個循環(huán)(return true;也是需要寫)
//every()當(dāng)內(nèi)部return false時跳出整個循環(huán)
let list = [1, 2, 3, 4, 5];
list.every((value, index) => {
if(value > 3){
console.log(value)// 4
return false;
}else{
console.log(value)// 1 2 3
return true;
}
});
list.every((value, index) => {
if(value > 3){
console.log(value)
return false;
}else{
console.log(value)// 1
// return true;
// 如果沒有返回值true 的話,也會跳出循環(huán)
}
});
// 輸出結(jié)果為: 1 2 3 4 1
forEach沒有返回值,只針對每個元素調(diào)用func。
// forEach沒有返回值,只針對每個元素調(diào)用func。
let list = [1, 2, 3, 4, 5];
list.forEach((value, index) => {
if(value > 3){
console.log(value); // 4 5
return false;//沒有返回值,ruturn false 仍向下執(zhí)行
}else{
console.log(value); // 1 2 3
return true;
}
});
// 輸出結(jié)果為:1 2 3 4 5
some 當(dāng)內(nèi)部return true時跳出整個循環(huán)
let list = [1, 2, 3, 4, 5];
list.some((value, index) => {
if(value === 3){
return true;//當(dāng)內(nèi)部return true時跳出整個循環(huán)
}
console.log(value)// 1 2
});
map 有返回值,返回一個新的數(shù)組,每個元素為調(diào)用func的結(jié)果。不能終止循環(huán),使用
break會報錯,使用return false;, 輸出結(jié)果中會有false,循環(huán)不會終止。
let list = [1, 2, 3, 4, 5];
let arr = [];
arr = list.map((value, index) => {
if(value == 3){
return false;
}
return value * 2;
});
console.log(arr); // [2, 4, false, 8, 10]