數(shù)組遍歷的幾種方法
數(shù)組遍歷有如下幾種方法:
數(shù)組方法
- map
- forEach
- filter
- find
- findIndex
- every
- some
- reduce
其他方法
- for
- for in
- for of
1.map
創(chuàng)建一個新數(shù)組内贮,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果诀诊,不改變原數(shù)組细办,返回值是一個新的數(shù)組懒熙。
var arr = [1, 2, 3, 4, 5, 6]
var newarr = arr.map(function (item, index, arr) {
return item * 2
})
console.log(newarr) //[2, 4, 6, 8, 10, 12]
2.forEach
對數(shù)組的每個元素執(zhí)行一次提供的函數(shù),總是返回undefined,不改變原數(shù)組昼弟。
let arr = [1, 2, 3, 4, 5, 6]
arr.forEach((item,index)=>{
arr[index] = item + 1
})
console.log(arr); //[2, 3, 4, 5, 6, 7]
3.filter
對數(shù)組的每一項都進行過濾啤它,返回符合條件的item組成的數(shù)組,不會改變原數(shù)組。
var arr = [1, 2, 3, 4, 5, 6];
var newarr = arr.filter(function (item, index, arr) {
return item > 5
})
console.log(newarr);//6
4.find
遍歷數(shù)組舱痘,找到第一個符合條件的項变骡,并返回該項,否則返回undefined,不會改變數(shù)組。
let findArr = [1,2,3,4,5,6]
let findResult = findArr.find((item, index) => {
return item === 1;
});
console.log(findResult); //1
5.findIndex
遍歷數(shù)組找到第一個符合條件的項芭逝,并返回該項的索引值塌碌。否則返回-1,不會改變數(shù)組對象。
let findIndexArr = ['a','b','c'];
let findIndexResult = findIndexArr.findIndex((item, index)=>{
return item === 'a';
});
console.log(findIndexResult); //true
6.every
對數(shù)組中的每一項運行給定函數(shù)旬盯,如果該函數(shù)對每一項返回true,則返回true台妆。簡單說就是看數(shù)組的每個元素是否符合要求,都符合則返回true瓢捉,否則返回false
var arr = [1, 2, 3, 4, 5, 6];
var newarr = arr.every(function (item, index, arr) {
return item > 5
})
console.log(newarr);//false
7.some
是對數(shù)組中每一項運行指定函數(shù)频丘,如果該函數(shù)對任一項返回true,則返回true泡态。
let arr = [1, 2, 3, 4, 5, 6];
let newarr = arr.some(function (item, index, arr) {
return item > 5
})
console.log(newarr);//true
8.reduce
接收一個函數(shù)作為累加器(accumulator)搂漠,數(shù)組中的每個值(從左到右)開始縮減,最終為一個值;第二個參數(shù)作為第一次調(diào)用的a的值某弦。
let arr = [100, 200, 300, 400]
let newArr = arr.reduce(function(preval, item, index, arr) {
console.log(preval, item, index, arr)
return preval + item
})
console.log(newArr)
其他方法
1.for循環(huán)
let testArr = ['a','b','c'];
for(var i = 0; a < testArr.length; i++){
console.log(testArr[i]);
}
2.for in
遍歷的是key
let testArr = ['子項0','子項1','子項2'];
for(let key in testArr){
console.log(key)
}
3.for of
遍歷的是value
let testArr = ['子項0','子項1','子項2'];
for(let value in testArr){
console.log(value)
}