Javascript 的技巧
some()
方法是會透過給定的函式中來測試,陣列中是否有一個元素符合條件,如果符合則會回傳布林值 true
const people = [
{name:'Wes',year:1988},
{name:'Kait',year:1986},
{name:'Irv',year:1970}
];
// 判斷有沒有年紀大於19的人
const isAdult = people.some(function(person){
const currentYear = (new.Date()).getFullYear();
if(currentYear - person.year >= 19){
return true;
}
})
// console.log(isAdult)為 true
或是改成箭頭函式,更簡短
const isAdult = people.some(person=((new.Date()).
getFullYear()) - person.year >= 19);
every()
方法是會透過給定的函式中來測試,陣列中是否全部的元素皆符合條件,如果符合則會回傳布林值 true
// 判斷是否全部的人年紀都大於19的人
const allAdult = people.every(function(person){
const currentYear = (new.Date()).getFullYear();
if(currentYear - person.year >= 19){
return true;
}
})
// console.log(allAdult)為 false
箭頭函式的寫法
const allAdult = people.every(person=((new.Date()).
getFullYear()) - person.year >= 19);
find()
方法是會透過給定的函式中來測試,陣列中是否有元素符合條件,如果符合則會回傳第一個找到的元素。
不同於filter
的全部元素皆會匯出。
const comments=[
{text:'Love this!',id:523423},
{text:'Super good!',id:823423},
{text:'You are the best!',id:2039842},
{text:'Ramen on my fav food ever!',id:123523},
{text:'Nice Nice Nice!',id:542328},
];
//找出id = 823423的第一個元素
const comment = comments.find(function(comment){
if(comment.id === 823423){
return true;
}
});
//console.log(comment)
改寫成箭頭函式
const comment = comments.find(comment => comment.id === 823423);
參考資料來源:
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/some
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/every
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/find