map():返回一个新的Array,每个元素为调用func的结果。新数组的长度和原来的是一样的,他只不过是逐一对原来数据里的每个元素进行操作。
filter():返回一个符合func条件的元素数组。筛选条件,把数组符合条件的放在新的数组里面返回。新数组和原来的数组长度不一定一样。
some():返回一个boolean,判断是否有元素是否符合func条件。数组里面所有的元素有一个符合条件就返回true。
every():返回一个boolean,判断每个元素是否符合func条件。数组里面所有的元素都符合才返回true。
forEach():没有返回值,只是针对每个元素调用func 。循环数组。和for的用法一样的。
every 当内部return false时跳出整个循环(return true;也是需要写)
//every()当内部return false时跳出整个循环
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 的话,也会跳出循环
}
});
// 输出结果为: 1 2 3 4 1
forEach没有返回值,只针对每个元素调用func。
// forEach没有返回值,只针对每个元素调用func。
let list = [1, 2, 3, 4, 5];
list.forEach((value, index) => {
if(value > 3){
console.log(value); // 4 5
return false;//没有返回值,ruturn false 仍向下执行
}else{
console.log(value); // 1 2 3
return true;
}
});
// 输出结果为:1 2 3 4 5
some 当内部return true时跳出整个循环
let list = [1, 2, 3, 4, 5];
list.some((value, index) => {
if(value === 3){
return true;//当内部return true时跳出整个循环
}
console.log(value)// 1 2
});
map 有返回值,返回一个新的数组,每个元素为调用func的结果。不能终止循环,使用
break
会报错,使用return false;
, 输出结果中会有false
,循环不会终止。
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]