5個很實用的數組迭代方法
學習數組迭代方法
every() 迭代數組每一項,每項都符合條件的才返回true,反之false
some() 迭代數組每一項,只要有一項符合條件就返回true,如果全部不符合才返回false
map() 迭代數組每一項,可以給特定條件會返回重新組成新的數組
filter() 迭代數組每一項,可以給特定的條件進行篩選返回新的數組
forEach() 迭代數組每一項,沒有返回值
every()
every() 方法,對數組中的每一項進行迭代,如果每一項都符合條件才可以返回true,反之返回false。
情景: 有五個孩子,如果這個五個孩子都大於或等於18歲,才能進入此網站
代碼示例:
let children = [
,
,
,
]
// // 數組中需要每一個項都符合條件才返回true,反之返回false
let isAdults = children.every(child = child.age = 18)
console.log(isAdults); // false 因為Peter的age小於18歲
// 手動把Peter的age改為20,再進行測試
children[1].age = 20;
let isAdults2 = children.every(child = child.age = 18)
console.log(isAdults2); // true 所有的孩子都已經滿足大於或者等於18歲了,所以返回true
some()
some() 方法,對數組的每一項迭代,只有一個選項符合條件的,就可以返回true了,只有全部不符合條件才返回false。
情景: 如果有4個人,其中只有一個小妹妹就可以通過了
代碼示例:
let people = [
,
,
,
]
// 數組中只需要符合一個條件就返回true,反之返回false
let hasGirl = people.some(val = val.sex === "girl");
console.log(hasGirl) // true
map()
map() 方法,對數組的每一項迭代,給特定的條件返回重新組成數組。
情景: 有五個員工,突然當月老闆給每個人發獎金1w,求每個人的當月發的工資為多少
代碼示例:
let employees = [
,
,
,
]
// 對每個員工進行加薪10000元獎金,返回新數組
let employeesWage = employees.map(item = {
return {
name: item.name,
// 每個人加1000元
wage: item.wage 10000
}
});
console.log(employeesWage);
/**
* 返回了新的員工工資數組
* [
* { name: "Bob", wage: 15000 },
* { name: "Peter", wage: 20000 },
* { name: "Lynn", wage: 25000 },
* { name: "Jack", wage: 30000 }
* ]
**/
filter()
filter() 方法,對數組的每一項迭代,根據給出的條件進行篩選且返回新數組
情景: 有五個員工,突然當月老闆給每個人發獎金1w,求每個人的當月發的工資為多少
代碼示例:
let students = [
,
,
,
]
// 獲得成績大於或等於90的學生,返回新數組
let awardStudents = students.filter(val = val.grade = 90);
console.log(awardStudents)
/**
* 輸出新數組:
* [
* { name: "Bob", grade: 100 },
* { name: "Jack", grade: 95 }
* ]
*/
forEach()
forEach() 方法,對數組的每一項迭代,沒有返回值
情景: 我想看下班上的每一位同學的成績為多少,沒有返回值
代碼示例:
// 讀取每個人的成績,沒有返回值
students.forEach(item = {
console.log(`$同學的成績為$`);
/**
* 輸出:
* Bob同學的成績為100
* Peter同學的成績為75
* Lynn同學的成績為80
* Jack同學的成績為95
*/
})
// 獲取獲得獎勵同學,沒有返回值
awardStudents.forEach(item2 = {
console.log(`獲得獎勵的同學有$`)
/* 輸出:
* 獲得獎勵的同學有Bob
* 獲得獎勵的同學有Jack
*/
})
思考與總結
往往最基礎的知識能最簡單、快捷地解決問題,這五個迭代方法在平時非常實用,要記住這五個數組迭代方法各自的優點,在需要的情景下,能馬上想到用哪個方法最簡單,最快捷地實現需求。
TAG:千鋒JAVA開發學院 |