0%

JavaScript-Array-Cardio-Day-2-07

在寫這篇的時候,想到剛出社會後半年有去面試一間很大的公司,那時候也是先考類似leet code的題目,讓我想到那時候雖然想得到要怎麼寫,
不過什麼method都要先去查查看他的名字,查到之後還要一邊閱讀document,慢慢在console試過才知道怎麼使用,幸好最後有通過online codeing,

只能說有規模的公司面試起來真的相對麻煩,考完試之後你的履歷和考試分數會寄給各team的leader,然後再由缺人的leader找你來面試,第一關HR面,面完會由team leader& memebres 一起面試,考考白板題,英文面,
最後結束再由HR做個結尾。

當準備要離開的時候,又突然說有其他team對我有興趣可不可以再面一次,
又是一樣的流程,心真的很累哈哈哈,之後就是等通知,

隔了兩天又問我說今天能不能在空出三小時,還有兩個team leader有興趣想要面試看看,那時候覺得自己好有價值,累也累得值得,
最後HR通知有三個team leader想要給我offer,問我對那幾個team有興趣的排序,之後就是等通知。
他們說team leader 會自己去協調,如果進去之後有想要轉team 或是想要做別的職位也可以,覺得在那裡練功成長,一定也是很不錯的,還是很後悔啊啊啊啊。


最後順利拿到offer,
拿到的薪水比當時多了40%,真不懂當時到底在想什麼,居然跟錢過不去XDD
不過也幸好留在原公司,讓我找到自己想做的事情,先從front-end開始,之後再慢慢補齊database再補齊back-end,最後變成一個全能的人吧!!

07 - Array Cardio Day 2

首次上傳:2020/10/03

主題

延續[[04 - Array Cardio Day 1]

步驟

練習範例內有提供了2組資料:

  1. people:[ { name: ‘string’, year: number } ]
  2. comments:[ text: ‘string’, id: number } ]

要練習的題目為:

  1. people是否有19歲以上的人
  2. People是否每個人都19歲以上
  3. 在comments中找到id是823423的資料
  4. 在comments中找到id是823423的資料索引值, 並透過索引值刪除這筆資料

JavaScript語法&備註

1. some()

題目:people是否有19歲以上的人?
解答:

1
const isAdult = people.some(person => ((new Date()).getFullYear()) - person.year >= 19);

透過some()會將Array中的資料逐筆進行判斷,只要有一筆通過判斷則回傳true並結束。

參閱:MDN-Array.prototype.some()

**2. every() **

題目:people是否每個人都19歲以上?
解答:

1
const allAdults = people.every(person => ((new Date()).getFullYear()) - person.year >= 19);

every()會對Array中的每筆資料進行判斷,只要有一筆不符合則回傳false並結束。
some()是相反操作的感覺。

參閱:MDN-Array.prototype.every()

**3. find() **

題目:在comments中找到id是823423的資料
解答:

1
const comment = comments.find(comment => comment.id === 823423);

find()會對Array中的資料逐筆進行判斷,返回第一筆符合條件的值,
若都沒有符合的值,將返回undefined

參閱:MDN-Array.prototype.find()

4. findIndex() & slice() & spared

題目:在comments中找到id是823423的資料索引值, 並透過索引值刪除這筆資料
解答:

1
2
3
4
5
const index = comments.findIndex(comment => comment.id === 823423);
const newComments = [
...comments.slice(0, index),
...comments.slice(index + 1)
];

首先透過findIndex()對Array中的資料逐筆進行判斷,返回符合條件的索引值,
接著利用spared也就是省略符號...來進行展開陣列並透過slice()組合陣列,
...comments.slice(0, index),這段先將陣列開頭到索引值前的資料加進來,
...comments.slice(index + 1)這段則是將索引值+1後延續到陣列結束的資料加進來。
slice()的第一個參數是陣列索引的起點,第二個是終點(且不會被使用)無填寫則是到結束。

參閱:
MDN-Array.prototype.findIndex()
MDN-Spread syntax
MDN-Array.prototype.slice()

[DEMO]