Demo
這周也是針對陣列的操作做練習,所以沒有預覽圖!
主要看程式碼和console.log
這次會用到的陣列的操作方式有:
- Array.prototype.some() 詳細解說
白話:陣列中至少有一個符合條件就回傳true;沒有就false
- Array.prototype.every() 詳細解說
白話:陣列中是不是每個都符合條件,是就回true;沒有就false
- Array.prototype.find() 詳細解說
白話:去陣列中找到第一個滿足條件的值就回這筆值;都找不到就undefined。
- Array.prototype.findIndex() 詳細解說
白話:承上,找到那個值是在陣列中的第幾個(序列)。如果沒有符合的對象,將回傳 -1 。
- Array.(index,N) 詳細解說
白話:從陣列中刪除第index到N個之後的這些值。所以
(index,N)
就是把index這位置刪掉。如果沒輸入N,從index開始之後的都會被刪掉。
進入主題
我們有兩筆資料:1
2
3
4
5
6
7
8
9
10
11
12
13
14const people = [
{ name: 'Wes', year: 1988 },
{ name: 'Kait', year: 1986 },
{ name: 'Irv', year: 1970 },
{ name: 'Lux', year: 2015 }
];
const comments = [
{ text: 'Love this!', id: 523423 },
{ text: 'Super good', id: 823423 },
{ text: 'You are the best', id: 2039842 },
{ text: 'Ramen is my fav food ever', id: 123523 },
{ text: 'Nice Nice Nice!', id: 542328 }
];
第一題
is at least one person 19 or older?
判斷陣列中是否有任一年齡大於19的人。1
2const result = people.some(who=>new Date().getFullYear() - who.year >= 19)
// console.log(result) ==> true
記得箭頭涵式如果有大括號
{}
要補上return
第二題
is everyone 19 or older?
判斷陣列中是否每個人的年齡都大於191
2const result = people.every(who=>new Date().getFullYear() - who.year >= 19)
// console.log(result) ==> false
第三題
find the comment with the ID of 823423
找出符合ID為823423的物件:1
2const result = comments.find(comment=>comment.id === 823423)
// console.log(result) ==> {text: "Super good", id: 823423}
第四題
Find the comment with this ID
找出符合ID為823423的物件元素在陣列中的Index1
2
3
4const result = comments.findIndex(comment=>
comment.id === 823423
)
// console.log(result) ==> 1
第五題
delete the comment with the ID of 823423
找出符合ID為823423的物件元素在陣列中的Index並刪除它1
2
3
4const result = comments.findIndex(comment=>
comment.id === 823423
)
comments.splice(result,1)
刪除後我們再console.log(comments)
會發現823423這筆已經被我們移除
這次的陣列操作方法反而比day4的簡單多了,day4真的滿重要的可以再回去複習一下。