const createFilter1 = params => entry => {
for (const [param, value] of Object.entries(params)) {
const [key, isMatch] = matchers[param];
if (!isMatch(entry[key], value))
return false;
}
return true;
};
const gt = (a, b) => a > b;
const lt = (a, b) => a < b;
const matchers = {
priceMin: ['price', gt],
priceMax: ['price', lt],
deliveryMin: ['delivery', gt],
deliveryMax: ['delivery', lt],
availabilityMin: ['availability', gt],
availabilityMax: ['availability', lt]
};
const createFilter2 = params => ({price, delivery, availability}) => {
for (const [param, value] of Object.entries(params))
switch (param) {
case 'priceMin': if (price < value) return false; break;
case 'priceMax': if (price > value) return false; break;
case 'deliveryMin': if (delivery < value) return false; break;
case 'deliveryMax': if (delivery > value) return false; break;
case 'availabilityMin': if (availability < value) return false; break;
case 'availabilityMax': if (availability > value) return false; break;
}
return true;
};
console.log(
data.filter(createFilter1({priceMin: 40000, availabilityMax: 90})),
data.filter(createFilter2({priceMin: 40000, availabilityMax: 90}))
);
stream.src = URL.createObjectURL(new Blob([bufferVideo], {type: 'video/mp4'}))
Примечание: Поскольку это HTML5 API, то он доступен только в процессе рендеринга. Если вы хотите отправлять уведомления из основного процесса, пожалуйста используйте модуль Notification.
new Notification({
title: 'Тестовое уведомление',
body: 'Пример уведомления'
});
а не new Notification("Тестовое уведомление", {
"body": "Пример уведомления"
});
Если это для себя прогресс-бар, то можно просто использовать pv