Привет, имеется массив с объектами. Пытаюсь построить функцию, которая фильтрует элементы массива (по свойству объекта) и возвращает массив с этими объектами. Объясните принцип передачи такого аргумента.
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, и почему вместо нее можно подставить что угодно и оно будет работать? Например: script=>script.name и т.д.