Завершение базового JavaScript
Стопроцентные друзья! Вчера я прошел базовый курс JavaScript. Спасибо хорошим людям из freeCodeCamp. Все было сделано красиво. У меня есть еще чему поучиться. Вот оставшиеся семнадцать или около того процентов, которые я завернул.
Коллекция записей
Я начинал с большого проекта здесь. Он хотел, чтобы я выполнил функцию, используя правила и условия. Итак, я получил условия и написал код. Достаточно просто.
// Setup const recordCollection = { 2548: { albumTitle: 'Slippery When Wet', artist: 'Bon Jovi', tracks: ['Let It Rock', 'You Give Love a Bad Name'] }, 2468: { albumTitle: '1999', artist: 'Prince', tracks: ['1999', 'Little Red Corvette'] }, 1245: { artist: 'Robert Palmer', tracks: [] }, 5439: { albumTitle: 'ABBA Gold' } }; // Only change code below this line function updateRecords(records, id, prop, value) { if (value == '') { delete records[id][prop]; } else if (prop === 'tracks' && records[id].hasOwnProperty("tracks") === false) { records[id][prop] = [value]; } else if (prop == 'tracks' && value != '') { records[id][prop].push(value); } else if (prop != 'tracks' && value != '') { records[id][prop] = value; } return records; } updateRecords(recordCollection, 5439, 'artist', 'ABBA');
На данный момент это был самый сложный проект, который я когда-либо делал. Это заняло у меня больше всего времени. Я забыл, как проверить, есть ли у чего-то свойство. Я посмотрел, как это сделать в Интернете. И я написал все условия не по порядку. Я думал, что именно поэтому я получаю ошибки. Но оказалось, что настоящая причина, по которой я получал ошибки, заключалась в том, что я забыл вернуть записи в конце оператора if. Помните: ВСЕГДА ДЕЛАЙТЕ МАЛЕНЬКОЕ ДЕЛО.
Петли
Далее были петли. У меня уже было общее представление о том, как они работают. Но мало ли я знал, я собирался быть брошенным на петлю.
// While Loop const myArray = []; let i = 5; while (i >= 0) { myArray.push(i); i--; } // My Solution // For Loops const myArray = []; for (let i = 1; i <= 5; i++) { myArray.push(i); } // Iterating Odd Numbers const myArray = []; for (let i = 1; i <= 9; i += 2) { myArray.push(i); } // Backwards Counting const myArray = []; for (let i = 9; i >= 0; i -=2) { myArray.push(i); } // Arrays and For Loops const myArr = [2, 3, 4, 5, 6]; let total = 0; for (let i = 0; i < myArr.length; i++) { total += myArr[i]; } // Double For Loops function multiplyAll(arr) { let product = 1; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { product = product * arr[i][j]; } } return product; } multiplyAll([[1, 2], [3, 4], [5, 6, 7]]); // Do...While Loops const myArray = []; let i = 10; do { myArray.push(i); i++; } while (i < 5); // Recursion function sum(arr, n) { if (n <= 0) { return 0; } else if (n > 0) { return sum(arr, n - 1) + arr[n -1]; } }
Видите, что я имею в виду?!? Я написал слишком много циклов за один день. Затем я сделал еще один большой проект под названием «Поиск профиля». Они хотели, чтобы я просмотрела все имена и проверила, их ли это имя.
// Setup const contacts = [ { firstName: "Akira", lastName: "Laine", number: "0543236543", likes: ["Pizza", "Coding", "Brownie Points"], }, { firstName: "Harry", lastName: "Potter", number: "0994372684", likes: ["Hogwarts", "Magic", "Hagrid"], }, { firstName: "Sherlock", lastName: "Holmes", number: "0487345643", likes: ["Intriguing Cases", "Violin"], }, { firstName: "Kristian", lastName: "Vos", number: "unknown", likes: ["JavaScript", "Gaming", "Foxes"], }, ]; function lookUpProfile(name, prop) { // Only change code below this line for (let i= 0; i< contacts.length; i++) { if (contacts[i].firstName === name) { if (contacts[i].hasOwnProperty(prop)) { return contacts[i][prop]; } else { return "No such property"; } } } return "No such contact"; // Only change code above this line } lookUpProfile("Akira", "likes");
Генерация случайных чисел
Это последний отрезок. Я должен был сделать простую генерацию чисел, и все было бы кончено.
// RandomFraction function randomFraction() { return Math.random(); } // Random whole number function randomWholeNum() { return Math.floor(Math.random() * 10); } // Random Whole Numbers in a Range function randomRange(myMin, myMax) { return Math.floor(Math.random() * (myMax - myMin + 1)) + myMin; } // ParseInt function convertToInteger(str) { return parseInt(str); } convertToInteger("56");
Тернарный оператор
Так далеко в курсе, я узнал новые вещи. Тернарный оператор был всего лишь вопросительным знаком в конце утверждения. Его также называют условным оператором. Итак, давайте посмотрим, какие условия я могу предложить.
// First time using ternary function checkEqual(a, b) { return a == b ? "Equal" : "Not Equal"; } checkEqual(1, 2); // Multiple Coniditional Ternary operators function checkSign(num) { return (num === 0) ? "zero": (num >= 0) ? "positive" : "negative"; } checkSign(10);
Мне нужно было закончить две последние проблемы с рекурсией. Хорошо, поехали!
// Only change code below this line function countdown(n){ if (n < 1) { return[]; } else { const countArray = countdown(n - 1); countArray.unshift(n); return countArray; } } console.log(countdown(10)); // My last problem // Only change code above this line function rangeOfNumbers(startNum, endNum) { if (startNum > endNum) { return[]; } else { let numbers = rangeOfNumbers(startNum, endNum - 1); numbers.push(endNum); return numbers; } };
ДАСССС!!!!!!!!!!!!!!!!
Я сделал все 113 уроков. Я еще не закончил. Но теперь я знаком со всеми основными понятиями JavaScript, которые мне понадобятся. Наслаждайтесь остатком дня! Спасибо всем за поддержку!