大家好,欢迎回到 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中文网其他相关文章!