filter(
arr, // первый аргумент - array (объект(не массив) с фильтруемыми вложенными объектами)
a => a.name == "Adam" // второй аргумент - test (функция)
)
function filter(array, test) { ... }
const test = (a) => {
return a.name == "Adam"
}
function test(a){
return a.name == "Adam" // стравнивает a.name со строкой "Adam", возвращаетекгу true равны и false если не равны
}
if (test(element)) { // проверяем равен ли name элемента строке "Adam"
result.push(element); // если равен, то добавляем в результирующий массив
}
const foo = function(arg) {
return arg > 2;
}
function mapper(array, func) {
return array.map(func);
}
mapper([1, 2, 3], foo);
(arg) => arg > 2;
почти то же самое, что определение функции foo()
выше. a => a.name == "Adam"
/*
* стрелочная функция, принимающая на вход один аргумент,
* который может быт назван как угодно,
* и возвращающая при вызове результат сверки свойства name у переданного аргумента
* со строкой 'Adam'
*/
let arr = {
object1 = {
name: "Adam",
year: 1997
}, object2 = {
name: "John",
year: 2000
}, object3 = {
name: "Conor",
year: 2001
}, object4 = {
name: "Adam",
year: 2000
}
}
let arr = [
{
name: "Adam",
year: 1997
}, {
name: "John",
year: 2000
}, {
name: "Conor",
year: 2001
}, {
name: "Adam",
year: 2000
}
]
let arr = {
object1: {
name: "Adam",
year: 1997
}, object2: {
name: "John",
year: 2000
}, object3: {
name: "Conor",
year: 2001
}, object4: {
name: "Adam",
year: 2000
}
}
getElementsByClassName()
возвращает «живую» коллекцию. Как только в DOM что-то меняется, коллекция обновляется.array[i].className = 'style';
заменяет все классы элемента на этот. Т.е. пропадает класс "card", по которому отбирали элементы. Обработанный элемент пропадает из коллекции. Коллекция сокращается, и следующее значение i
подхватит элемент через-один от задуманного.let array = [...document.getElementsByClassName('card')]; // теперь это просто массив
card
, то добавлять класс можно через classList.add()
, как уже посоветовали.