1婆殿、arr.forEach?方法允許為數(shù)組的每個元素都運行一個函數(shù)朦拖。forEach绍绘,for?或?for..of垢粮。
arr.forEach(function(item,index,array) { // ... do something with item});
2边酒、find 和 findIndex
let result = arr.find(function(item,index,array) {?
?// 如果返回 true钧汹,則返回 item 并停止迭代?
?// 對于假值(falsy)的情況扇苞,則返回 undefined
});
如果它返回?true据某,則搜索停止橡娄,并返回?item。如果沒有搜索到癣籽,則返回?undefined
arr.findIndex?方法(與?arr.find?方法)基本上是一樣的挽唉,但它返回找到元素的索引,而不是元素本身筷狼。并且在未找到任何內(nèi)容時返回?-1瓶籽。
let users = [ {id: 1, name: "John"}, {id: 2, name: "Pete"}, {id: 3, name: "Mary"}];
let user = users.find(item => item.id == 1);
alert(user.name); // John
3、filter?返回所有匹配元素組成的數(shù)組
let results = arr.filter(function(item,index,array) {?
?// 如果 true item 被 push 到 results埂材,迭代繼續(xù)?
?// 如果什么都沒找到塑顺,則返回空數(shù)組
});
let users = [ {id: 1, name: "John"}, {id: 2, name: "Pete"}, {id: 3, name: "Mary"}];
// 返回前兩個用戶的數(shù)組
let someUsers = users.filter(item =>item.id < 3);
console.log(someUsers) // [{id:?1,?name:?"John"},{id: 2,?name:?"Pete"}]
4、arr.map?它對數(shù)組的每個元素都調(diào)用函數(shù)俏险,并返回結(jié)果數(shù)組严拒。let result = arr.map(function(item,index,array) { // 返回新值而不是當(dāng)前元素})
let arr = [1,2,3]
let newarr = arr.map(item =>item*2)
console.log(newarr) // [2,4,6]
任何/所有結(jié)果為?true竖独,則返回?true裤唠,否則返回?false。
這兩個方法的行為類似于?||?和?&&?運算符:如果?fn?返回一個真值莹痢,arr.some()?立即返回?true?并停止迭代其余數(shù)組項种蘸;如果?fn?返回一個假值,arr.every()?立即返回?false?并停止對其余數(shù)組項的迭代竞膳。