let arr = {
object1 = {
name: "Adam",
year: 1997
}, object2 = {
name: "John",
year: 2000
}, object3 = {
name: "Conor",
year: 2001
}, object4 = {
name: "Adam",
year: 2000
}
}
function filter(array, test) {
let result = [];
for (let element of array) {
if (test(element)) { // Объясните как работает эта строчка
result.push(element);
}
}
return result;
}
console.log(filter(arr, a => a.name == "Adam")); // И тут
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
}
}
const foo = function(arg) {
return arg > 2;
}
function mapper(array, func) {
return array.map(func);
}
mapper([1, 2, 3], foo);
(arg) => arg > 2;
почти то же самое, что определение функции foo()
выше. 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); // если равен, то добавляем в результирующий массив
}