关于数组中forEach() 、map()、filter()、reduce()、some()、every()的总结
1. forEach()
let array = [1,2,3,4];
array.forEach((item, index, array) =>{console.log(item);});
forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容.
2. map()
let array = [1, 2, 3, 4];
let temp = array.map((item, index, array) => {
return item * 10;
});
console.log(temp); // [10, 20, 30, 40];
console.log(array); // [1, 2, 3, 4]
// map 遍历数组, 会返回一个新数组, 不会改变原来数组里的内容
let temp2 = array.map(String); // 把数组里的元素都转成字符串
3. filter()
let array = [1,2,3,4];
let temp = array.filter((item, index, array) =>{
return item >3;
});
console.log(temp);// [4]
console.log(array);// [1, 2, 3, 4]
// filter 会过滤掉数组中不满足条件的元素, 把满足条件的元素放到一个新数组中, 不改变原数组
4. reduce()
let array = [1,2,3,4];
let temp = array.reduce((x, y) =>{
console.log("x": x);
console.log("y": y);
return x + y;});
console.log(temp);// 10
console.log(array);// [1, 2, 3, 4]
// x 是上一次计算过的值, 第一次循环的时候是数组中的第1个元素
// y 是数组中的每个元素, 第一次循环的时候是数组的第2个元素
5. every()
let array = [1,2,3,4];
let bo = array.every((item, index, array) =>{
return item >2;
});
console.log(bo);// false;
// every遍历数组, 每一项都是true, 则返回true, 只要有一个是false, 就返回false
6. some()
let array = [1,2,3,4];
let tmep = array.some((item, index, array) =>{
return item >1;
});
console.log(temp);// true
// 遍历数组的每一项, 有一个返回true, 就停止循环
7. arr.find(callback) 找到第一个符合条件的数组成员
let arr = [1,2,3,4,5,2,4]
let arr1 = arr.find((value, index, array) =>value > 2)
console.log(arr1) // 3
8.arr.includes() 判断数中是否包含给定的值
let arr = [1,2,3,4,5]
let arr1 = arr.includes(2)
console.log(arr1) // turelet arr2 = arr.includes(9)
console.log(arr2) // falselet arr3 = [1,2,3,NaN].includes(NaN)
console.log(arr3) // true
ps:与indexOf()的区别:
1 indexOf()返回的是数值,而includes()返回的是布尔值
2 indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断
9. arr.splice(i,n) 删除从i(索引值)开始之后的那个元素。返回值是删除的元素
参数: i 索引值 n 个数
let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))//[3,4]console.log(arr)// [1,2,5]
10.arr.concat() 连接两个数组 返回值为连接后的新数组
let arr = [1,2,3,4,5]
console.log(arr.concat([1,2]))// [1,2,3,4,5,1,2]console.log(arr)// [1,2,3,4,5]
11. str.split() 将字符串转化为数组
let str = '123456'console.log(str.split(''))// ["1", "2", "3", "4", "5", "6"]
12.arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组
let arr = [1,2,3,4,5]
console.log(arr.slice(1,3))// [2,3]console.log(arr)// [1,2,3,4,5]