arr.filter(nam(20,50))
// это то же самое:
arr.filter(function (x) { return x >= 20 && x <= 50; })
// или так:
function f(x) {
return x >= 20 && x <= 50;
}
arr.filter(f)
.filter(f)
применит функцию f
по очереди к каждому элементу массива. Т.е. вызовет функцию f(10), f(20), ... f(70)
f(элемент)
вернул true
. let el = document.getElementById('a');
function func(){
let timeId;
const handleScroll = () => {
let scrollPos = window.pageYOffset;
document.getElementById('z').innerHTML = scrollPos;
if(scrollPos > 600) {
if(!el.classList.contains('timer')) {
el.classList.add('timer');
let b = 60;
timeId = setInterval(() => {
b--;
el.innerHTML=b;
if(b == 0){
el.classList.remove('timer');
clearInterval(timeId);
alert('Отлично!');
}
}, 1000);
}
} else {
console.warn('stop');
clearInterval(timeId);
}
}
window.addEventListener('scroll', handleScroll);
}
func();
let btn = document.querySelector('#button1');
let elements = document.querySelectorAll('.test');
btn.addEventListener('click', changeColor);
function changeColor() {
for (let element of elements) {
elements.classList.toggle('color1');
}
}
.hidden {
display: none;
}
const filter = document.querySelector('.filter');
filter.addEventListener('change', function() {
document.querySelectorAll('.cart-product').forEach(function(n) {
n.classList.toggle('hidden', this.length && !this.includes(n.dataset.category));
}, Array.from(this.querySelectorAll(':checked'), n => n.dataset.filter));
});
filter.dispatchEvent(new Event('change'));
some
, если нужен именно map
с остановкой цикла - тут следует использовать for
либо какую-нить либу, которая это умеет.map
там где должен быть прерван цикл или там где не нужно получения нового массива - они говнокодеры.for
там где идеально справился бы map
- вы старпёр, бессмысленно раздувающий и усложняющий код.$(function() {
var $fotoramaDiv = $('.fotorama').fotorama();
var fotorama = $fotoramaDiv.data('fotorama');
var imagArr = fotorama.data;
var srcArr = [];
for(var i = 0; i < imagArr.length; i++){
var src = {};
src.src = imagArr[i].img;
srcArr.push(src);
}
$('.fotorama__img').click(function(){
$.fancybox.open(srcArr, {
loop: false
});
});
});
const ready = (callback: { (): void; (): void }) => {
if (document.readyState !== 'loading') {
callback();
} else {
document.addEventListener('DOMContentLoaded', callback);
}
};
ready(() => {
window.addEventListener('scroll', (e: Event) => {
const top = document.documentElement.scrollTop;
const pos = (top / 3).toFixed(2);
const splash = document.querySelector('.splash') as HTMLDivElement;
if (splash !== null) {
splash.style.backgroundPosition = '0px -' + pos + 'px';
}
const homeNavbar = document.querySelector(
'#home > .navbar',
) as HTMLDivElement;
if (top > 50) {
homeNavbar.classList.remove('is-transparent');
} else {
homeNavbar.classList.add('is-transparent');
}
});
const abar = document.querySelector('a[href="/#"]') as HTMLAnchorElement;
abar.addEventListener('click', (e: any) => {
e.preventDefault();
});
});