關于數(shù)組中forEach() 、map()、filter()、reduce()、some()、every()的總結
1. forEach()
let array = [1,2,3,4];
array.forEach((item, index, array) =>{console.log(item);});
forEach會遍歷數(shù)組, 沒有返回值, 不允許在循環(huán)體內寫return, 不會改變原來數(shù)組的內容.
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 遍歷數(shù)組, 會返回一個新數(shù)組, 不會改變原來數(shù)組里的內容
let temp2 = array.map(String); // 把數(shù)組里的元素都轉成字符串
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 會過濾掉數(shù)組中不滿足條件的元素, 把滿足條件的元素放到一個新數(shù)組中, 不改變原數(shù)組
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 是上一次計算過的值, 第一次循環(huán)的時候是數(shù)組中的第1個元素
// y 是數(shù)組中的每個元素, 第一次循環(huán)的時候是數(shù)組的第2個元素
5. every()
let array = [1,2,3,4];
let bo = array.every((item, index, array) =>{
return item >2;
});
console.log(bo);// false;
// every遍歷數(shù)組, 每一項都是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
// 遍歷數(shù)組的每一項, 有一個返回true, 就停止循環(huán)
7.?arr.find(callback)?找到第一個符合條件的數(shù)組成員
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()?判斷數(shù)中是否包含給定的值
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()的區(qū)別:
1 indexOf()返回的是數(shù)值,而includes()返回的是布爾值
2 indexOf() 不能判斷NaN,返回為-1 ,includes()則可以判斷
9.?arr.splice(i,n)?刪除從i(索引值)開始之后的那個元素。返回值是刪除的元素
參數(shù): i 索引值? ? ? n 個數(shù)
let arr = [1,2,3,4,5]
console.log(arr.splice(2,2))//[3,4]console.log(arr)// [1,2,5]
10.arr.concat()?連接兩個數(shù)組 返回值為連接后的新數(shù)組
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()?將字符串轉化為數(shù)組
let str = '123456'console.log(str.split(''))// ["1", "2", "3", "4", "5", "6"]
12.arr.slice(start,end)?切去索引值start到索引值end的數(shù)組,不包含end索引的值,返回值是切出來的數(shù)組
let arr = [1,2,3,4,5]
console.log(arr.slice(1,3))// [2,3]console.log(arr)//? [1,2,3,4,5]