iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0

[Day7] Array Cardio Day 2

Javascript 的技巧

需要用到的技巧與練習目標

  1. some and every
  2. find and findIndex
  3. splice and slice

Array.prototype.some()

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);

Array.prototype.every()

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);

Array.prototype.find()

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


上一篇
[Day6] Ajax Type Ahead
下一篇
[Day8] Fun with HTML5 Canvas
系列文
JavaScript 30天 跟著一起做一遍!!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言