数组新增方法:forEach(),map(),filter(),some(),every()
箭头函数:
可以不写function,如果只有一个形参也可以不要小括号,语句只有一句也可以不要花括号,但是必须去掉return
forEach和filter遇到满足条件时,遇到return也不会结束迭代。
forEach:
用法:array.forEach(function(currentValue,index,array))
currentValue:数组当前项的值
index:数组当前项的索引
arr:数组对象本身
<script>
arr = [1, 2, 3];
arr.forEach(function (value, index, array) {
console.log(value);
});
</script>
filter:
用法:筛选满足条件的元素并组成新数组
array.filter(function(currentValue,index,array))
currentValue:数组当前项的值
index:数组当前项的索引
arr:数组对象本身
let newArr = arr.filter(function (value, index) {
return value > 50;
});
let newArr1 = arr.filter((item) => item > 50);
some:
用法:查找是否含有复合条件的数组元素,存在true,不存在则false.array.filter(function(currentValue,index,array))
currentValue:数组当前项的值
index:数组当前项的索引
arr:数组对象本身
//some的返回值是true和false,true则结束执行。
//这里使用的如果value>50为真,则不执行,属于简写。
let flag = arr.some(function (value) {
return value > 50;
});
let flag1 = arr.some(item => item > 50);
map() 注意与Map对象区分
方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成
const map1 = arr.map((x) => x * 2);
console.log(map1);
//(5) [2, 4, 6, 110, 132]
every():
方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
const every1 = arr.every((item) => item % 2 == 0);
console.log(every1);
//也可以把回调函数卸载方法体的外面。
const result = (item) => item < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(result));