if (false === func(employee[name])) {
// или вообще длинно:
const checkValue = employee[name]; // name – строка "age", потом "education", "experience"
// т.е. в первом случае employee[name] то же самое что employee.age
const checkResult = func(checkValue); // получится или true или false
if (checkResult === false) {
// ...
filters.experience(employee.experience)
errors
в итоге могут же попать одно, два, все, или ни одного имён свойств – так что одним errors.push()
не обойтись. apt-get
установилось что-то очень старое. Sample Input #02 5 1 2 2 3 4 Sample Output #02 3
function
, но в данном коде это то же самое age: v => v >= 25,
age: (v) => v >= 25,
age: (v) => {
return v >= 25;
},
age: function (v) {
return v >= 25;
},
В общем, в свойство age
записывается значением функция, которая принимает единственный аргумент и возвращает Булево значение. true
если аргумент больше или равен 25. Иначе false
.[ключ, значение]
для итерируемых свойств объекта-аргумента. Т.е. для нашего filters
получится массив [ ["age", function1], ["education", function2], ... ]
forEach()
Используя деструктурирующее присваивание из переданного в функцию аргумента-массива-пары сразу вытаскиваем в переменные name
и func
. Можно было бы длиннее: .forEach((pair) => {
const name = pair[0];
const func = pair[1];
// ...
})
name
– это имя очередного фильтра: строки "age", "education", и т.д.func
это очередная соотв. функция, которые мы там раньше в filters
определили. Для age
это та функция (v) => v >= 25
. Функция, которая возвращает Булево значение (true или false). В нормальном случае true. Если значение НЕ соответствует ожиданиям, то false. Вот этот случай ошибки и нужен, поэтому инвертируем Булево значение: !false === true
Т.е. в if ()
попадаем, когда функция проверки возвращает ошибку, false
. { ИмяСвойства: ФункцияКотораяПроверяет }
(обновил ответ)<?php
$data = [ // все-все динамические данные для страницы
'list_of_rooms' => [$room1, $room2],
'list_of_passengers' => [ ],
'prices' => [ 'A' => 195.5, 'B' => 135.2 ],
];
printf('<script>
try {
const data = %s;
} catch(err) { console.error(err); }
</script>', json_encode($data);
А дальше вы на фроте эти данные из data.list_of_passengers
уже используйте по-человечески ) 1e12
vs 8-значный ключ a-zA-Z0-9 = 26+26+10 = 62
62^8 / 1e12 ~= 218.34