https://github.com/nfcortega89/arraycardioday2
Сегодня снова тренировал голову! Итак, сегодня мы рассмотрели еще несколько методов массива. Сегодня я пройдусь по 4 из них.
Нам дан массив объектов, хранящихся в нашей переменной people. Сегодня у нас есть 2 пары ключ-значение. имя человека и год его рождения.
постоянные люди = [
{имя: «Вес», год: 1988},
{имя: «Кейт», год: 1986},
{ название: «Ирв», год: 1970},
{ название: «Люкс», год: 2015 }
];
Они хотят, чтобы мы проверили, есть ли хотя бы один человек в возрасте 19 лет или старше. Мы будем использовать Array.prototype.some(). Some будет перебирать каждый элемент в массиве и проверять, соответствует ли хотя бы 1 элемент в нашем массиве нашим критериям. Мы создадим переменную, в которой будем использовать some в нашем массиве people. Нам нужна текущая дата, поэтому мы можем использовать метод new Date() и цепочку getFullYear(), чтобы у нас был только текущий год. Когда у нас есть текущий год, мы можем вычесть его против года нашего текущего человека, и если он больше чем 19. Вот как это выглядит.
const isOne = people.some(person =› new Date().getFullYear() — person.year ›= 19)
console.log(isOne)
// мы должны вернуть true
Далее следует Array.prototype.every(). В отличие от некоторых, каждый проверяет, соответствуют ли критерии всем элементам в массиве. Теперь мы проверим, всем ли исполнилось 19 лет или больше.
const = isAll = people.every(person =› new Date().getFullYear() — person.year ›= 19)
console.log(все)
// должно вернуться как false
Нам дан другой массив объектов, хранящийся в комментариях. Как и наш массив людей, он имеет 2 пары ключ-значение. Какой-то текст и его id.
постоянные комментарии = [
{ текст: «Люблю это!», id: 523423 },
{текст: «Очень хорошо», id: 823423},
{ текст: «Ты лучший», id: 2039842 },
{ текст: «Рамен — моя любимая еда», id: 123523},
{ текст: «Хорошо, приятно, приятно!», id: 542328 }
];
Теперь нас просят использовать Array.prototype.find() для поиска комментария с идентификатором 823423. Найти как фильтр возвращает первый элемент, который он находит. Мы воспользуемся find для нашего массива комментариев и сохраним его в новой переменной с именем comment. Мы проверим, соответствует ли наш комментарий ID следующим критериям:
const comment = comments.find(comment => comment.id === 823423)
console.log(комментарий)
// должно вернуть { text: «Очень хорошо», id: 823423 },
Наконец, нас просят использовать Array.prototype.findIndex(), чтобы найти тот же комментарий и удалить его. findIndex вернет индекс элемента, который вы ищете. Мы также рассмотрим функции splice и slice, чтобы удалить комментарий, соответствующий этому идентификатору. Нам нужно создать переменную, в которой мы будем использовать findIndex в нашем массиве комментариев и проверять, какой комментарий ID соответствует нашим критериям.
const index = comments.findIndex(comment => comment.id === 823423)
теперь, когда у нас есть наш индекс, мы можем использовать splice, чтобы удалить его из нашего массива комментариев. Сращивание будет принимать в качестве аргументов индекс и количество элементов, которые вы хотите удалить.
комментарии.splice(индекс, 1)
Однако это изменит наш исходный массив. Если вы не хотите изменять исходный массив, вы можете использовать slice. Slice принимает в качестве аргументов начальный индекс и конечный индекс. Мы начнем с создания нового массива, где мы будем использовать наш синтаксис расширения (для вставки в массив), а затем с помощью нарежьте наш массив comments и передайте 0 и наш index, когда мы использовали findIndex. Мы будем использовать синтаксис расширения и снова нарезать в нашем массиве комментариев, чтобы вставить остальную часть массива, начиная с индекса +1. .
константные новые комментарии = [
…комментарии.slice(0, индекс)
…комментарии.срез(индекс + 1)
]