Rumah >hujung hadapan web >tutorial js >JavaScript - rray Cardio Hari 2
Hai semua dan selamat datang kembali ke hari lain JavaScript30 Wes Bos! Baiklah...sudah lebih 2 minggu sejak siaran terakhir saya dan itu agak menyedihkan. Walau bagaimanapun, saya telah memasukkan notis saya pada tugas semasa saya dan mereka telah membawa saya ke lapangan jadi saya tidak mempunyai banyak masa untuk bekerja pada pengekodan saya baru-baru ini...tetapi sekarang saya secara rasmi separuh masa anda boleh pertaruhkan anda bahawa siaran ini akan mula datang dengan lebih kerap dan mungkin lebih pelbagai kerana saya akan mempunyai masa untuk mengerjakan projek lain selain daripada yang ini sahaja. Walau bagaimanapun, anda tidak datang ke sini untuk mendapatkan kemas kini tentang kehidupan saya anda berada di sini untuk melihat lebih lanjut tentang kursus ini! Jadi mari kita mulakan!
Array Cardio hari ke-2 adalah TIADA berbanding hari pertama. Saya tidak akan berbohong. Saya benar-benar takut untuk menghadapi cabaran ini berdasarkan bagaimana yang pertama pergi. Kursus pertama membuatkan saya sentiasa googling dan melompat melalui gelung. Ia benar-benar terasa seperti senaman, sedangkan ini lebih kepada regangan atau mungkin sesi yoga. Bahagian pertama Array Cardio hari 2 terlibat menggunakan Array.prototype.some() dan Array.protoype.every(). Kami diberi objek dalam tatasusunan yang menyimpan senarai orang dan tahun mereka dilahirkan. Dengan maklumat ini, kami diminta untuk mengetahui sama ada sekurang-kurangnya seorang berumur lebih daripada 19 tahun dan kemudian jika setiap orang berumur lebih daripada 19 tahun.
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)
Bahagian cabaran ini membuatkan saya berasa sangat baik tentang diri saya, saya tidak akan berbohong tentang itu. Selepas carian google pantas saya mendapat jawapan saya tentang cara menggunakan Array.prototype.some() dan itu juga digunakan secara langsung pada .every(). Saya benar-benar melepaskannya dari air dan merasakan saya akan dapat menyelesaikan cabaran ini dalam masa yang singkat. Ternyata saya betul dan salah...
Bahagian kedua dan, entah bagaimana, bahagian akhir cabaran ini melibatkan Array.prototype.find() dan Array.prototype.findIndex(). Kami diberi objek lain dalam tatasusunan tetapi kali ini ia mempunyai senarai ulasan untuk beberapa jenis ulasan restoran yang semuanya mempunyai nombor id mereka sendiri untuk membantu membezakannya. Sama seperti sebelum melakukan carian google pantas menunjukkan kepada saya cara menggunakan .find() dan cara menggunakannya dengan baik, tetapi nampaknya ia bukan apa yang Wes cari. Saya hanya menggunakan .find() semasa menggunakan console.log apabila merujuk fungsi yang saya buat yang memanggil id berdasarkan nombor yang diberikan. Saya rasa saya boleh berhujah bahawa ia adalah serupa dengan apa yang dia lakukan...semacam...anda tahu, memandangkan kami berdua menghasilkan keputusan yang sama. Tetapi saya tidak tahu, saya rasa saya lebih suka kod saya daripada kodnya dalam kes ini.
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)
Ternyata saya juga tidak jelas tentang apa yang dia mahu kami lakukan untuk bahagian akhir cabaran. Semasa meminta kami menggunakan findIndex() dia juga mahu kami memadamkan ulasan dengan id yang sama yang baru kami temui sebelum ini. Saya baru sahaja melalui VScode dan memadam komen secara manual. Untuk bersikap adil, saya fikir dia hanya mahu menunjukkan kepada kami apa yang akan dikembalikan jika ulasan itu tidak ada lagi. Ternyata dia mahu kami menggunakan sama ada .splice atau .slice untuk memadam komen melalui kod baharu (yang lebih masuk akal untuk latihan ini) dan kemudian meminta kami mengakses tatasusunan baharu tanpa ulasan khusus itu di dalamnya. Jadi...ya...saya tidak sampai ke tahap itu kerana saya hanya memadamkannya secara manual. Tetapi saya kembali dan mengekodkan bersama-samanya untuk melihat cara ia boleh dilakukan dengan baris kod baharu.
Jadi begitulah. Array Cardio Day 2. Saya berasa lega apabila mengetahui bahawa tiada Hari 3 ini. Itu bukan saya katakan bahawa saya tidak boleh menggunakan lebih banyak latihan dengan tatasusunan dan cara anda boleh berinteraksi dengannya. Setakat kursus ini, ini mungkin yang paling tidak menyeronokkan setakat ini. Nantikan pelajaran seterusnya yang akan saya bahas, semoga ia akan keluar sama ada minggu ini atau awal minggu depan kerana saya mempunyai lebih banyak masa! Walau apa pun saya harap anda sudah bersedia untuk JavaScript30: Fun With HTML5 Canvas!
Atas ialah kandungan terperinci JavaScript - rray Cardio Hari 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!