大家好,歡迎回到 Wes Bos 的 JavaScript30 的另一天!好吧……距離我上次發文已經過去兩週多了,這真是令人難過。 話雖這麼說,我確實在目前的工作中發出了通知,他們一直在讓我陷入困境,所以我最近沒有那麼多時間來寫代碼……但現在我正式成為你的兼職了可以打賭,這些帖子將開始更頻繁地發布,而且可能會更加多樣化,因為除了這個專案之外,我還將有時間從事其他專案。 然而,您來這裡並不是為了了解我生活的最新動態,您來這裡是為了了解有關本課程的更多資訊! 那麼就讓我們開始吧!
陣列有氧運動第二天與第一天相比根本不算什麼。 我不會說謊。 根據第一個挑戰的進展情況,我絕對害怕接受這個挑戰。 第一門課程讓我不斷在谷歌上搜尋並跳過障礙。 這確實感覺像是一次鍛煉,而這更像是一次伸展運動,或者可能是瑜伽課程。 Array Cardio 第 2 天的第一部分涉及使用 Array.prototype.some() 和 Array.protoype.every()。 我們得到了一個數組中的對象,其中包含人員列表及其出生年份。 根據這些訊息,我們被要求弄清楚是否至少有一個人超過 19 歲,然後是否每個人都超過 19 歲。
const people = [ { name: 'Wes', year: 1988 }, { name: 'Kait', year: 1986 }, { name: 'Irv', year: 1970 }, { name: 'Lux', year: 2015 } ]; // Some and Every Checks // Array.prototype.some() // is at least one person 19 or older? const isAdult = people.some(person => ((new Date()) .getFullYear()) - person.year >= 19 ) console.log({isAdult}) // Array.prototype.every() // is everyone 19 or older? const areAdult = people.every(person => { const currentYear = (new Date()).getFullYear(); return currentYear - person.year >= 19 } ) console.log(areAdult)
這部分挑戰讓我對自己感覺非常好,我不會對此撒謊。 經過快速谷歌搜尋後,我得到瞭如何使用 Array.prototype.some() 的答案,而答案也直接應用於 .every()。 我絕對把它從水中吹出來,感覺我能夠在創紀錄的時間內完成這項挑戰。事實證明我既對又錯...
這個挑戰的第二部分,也是最後一部分涉及 Array.prototype.find() 和 Array.prototype.findIndex()。 我們在數組中得到了另一個對象,但這次它有一個針對某種餐廳評論的評論列表,所有評論都有自己的 ID 號碼來幫助區分它們。 就像在進行快速谷歌搜尋之前向我展示瞭如何使用 .find() 以及如何很好地使用它一樣,但看起來這並不完全是 Wes 想要的。 我只在使用 console.log 時使用 .find() 來引用我製作的根據給定數字呼叫 id 的函數。 我想我可以說這與他所做的相似......有點......你知道,考慮到我們都得出了相同的結果。 但我不知道,在這種情況下,我想我比他的程式碼更喜歡我的程式碼。
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 } ]; // Find is like filter, but instead returns just the one you are looking for // find the comment with the ID of 823423 function hasId(idNumber) { return idNumber.id === 823423 } console.log (comments.find(hasId)) // Array.prototype.findIndex() // Find the comment with this ID // delete the comment with the ID of 823423 function thisId(idNumber) { return idNumber.id === 823423 } console.log (comments.findIndex(thisId)) const index = comments.findIndex(comment => comment.id === 823423) const newComments = [ ...comments.slice(0, index), ...comments.slice(index + 1) ] console.table(newComments)
事實證明,我不清楚他希望我們在挑戰的最後部分做什麼。 在讓我們使用 findIndex() 的同時,他也希望我們刪除具有與我們之前找到的相同 id 的評論。 我剛剛通過 VScode 並手動刪除了註釋。 公平地說,我認為他只是想向我們展示如果評論不再存在會返回什麼。 事實證明,他希望我們使用 .splice 或 .slice 透過新程式碼刪除註解(這對於本練習更有意義),然後讓我們存取其中沒有特定註解的新陣列。 所以...是的...我沒有達到這一點,因為我只是手動刪除了它。 但我確實回去和他一起編碼,看看如何透過新的程式碼行來實現這一點。
就是這樣。 Array 有氧運動第二天。得知沒有第三天,我感到很欣慰。 我並不是說我不能對數組以及如何與它們互動進行更多練習。 就本課程而言,這些可能是迄今為止最無趣的。 請留意我將要講的下一課,希望它會在本週或下週初發布,因為我將有更多時間! 無論如何,我希望您已準備好使用 JavaScript30:享受 HTML5 Canvas 的樂趣!
以上是JavaScript - ray 有氧運動第 2 天的詳細內容。更多資訊請關注PHP中文網其他相關文章!