1.find()、findIndex()
var stu =[
{
"name": "張三",
"gender": "男",
"age": 20
},
{
"name": "王小毛",
"gender": "男",
"age": 20
},
{
"name": "李四",
"gender": "男",
"age": 20
}
]
stu.find((element) => (element.name == '李四')) // 返回的是{name: "李四", gender: "男", age: 20}
stu.findIndex((element)=>(element.name =='李四')) // 返回的是索引下標:2
2.forEach()
var arr = [1,2,3,4];
arr.forEach((item,index,arr) => {
console.log(item) //結果爲1,2,3,4
})
//forEach遍歷數組,無返回值,不改變原數組,僅僅只是遍歷、常用於註冊組件、指令等等。
3.map()
var arr = [1,2,3,4];
let arr2 = arr.map((item,index,arr) => {
return item*10 //新數組爲10,20,30,40
})
改變當前循環的值,返回一個新的被改變過值之後的數組(map需return),一般用來處理需要修改某一個數組的值。
map遍歷數組,返回一個新數組,不改變原數組的值。
4.filter()
filter函數可以看成是一個過濾函數,返回符合條件的元素的數組
filter需要在循環的時候判斷一下是true還是false,是true纔會返回這個元素;
var arr = [1,2,3,4];
arr.filter((item,index,arr) => {
return item > 2 //新數組爲[3,4]
})
//filter過濾掉數組中不滿足條件的值,返回一個新數組,不改變原數組的值。
5.reduce()
var arr = [1,2,3,4];
arr.reduce((result,item,index,arr) => {
console.log(result) // 1 3 6 result爲上次一計算的結果
console.log(item) // 2 3 4
console.log(index) // 1 2 3
return result+item //最終結果爲10
})
//reduce 讓數組的前後兩項進行某種計算。然後返回其值,並繼續計算。不改變原數組,返回計算的最終結果,從數組的第二項開始遍歷。
6.some()
var arr = [1,2,3,4];
arr.every((item,index,arr) => { // (數組具體項,位置,數組本身);
return item > 1 //結果爲false
})
//遍歷數組每一項,每一項返回true,則最終結果爲true。當任何一項返回false時,停止遍歷,返回false。不改變原數組
1.some()方法,遍歷數組的每一項,若其中一項爲 true,則返回true;
2.every()方法,遍歷數組每一項,若全部爲true,則返回true;
以上後6個方法均爲ES6語法,IE9及以上才支持。不過可以通過babel轉意支持IE低版本。
以上均不改變原數組。
some、every返回true、false。
map、filter返回一個新數組。
reduce讓數組的前後兩項進行某種計算,返回最終操作的結果。
forEach 無返回值。