document.addEventListener("scroll",function(e){
var height = Math.max( document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight );
if(window.scrollY + window.innerHeight >= height ){
//тут скрипт
}
});
close() {
// удалить объект из массива используя this или ещё другим способом без перебора уникальных идентификаторов
let inx = window.popUpers.indexOf(this)
if (inx > -1)
window.popUpers.splice(inx , 1)
}
function restoreArr(arr){
if(arr.length > 0 && arr[0] == null)
throw "Не найдено первое число";
for(let i = 0; i < arr.length-1;i++){
if(arr[i+1] == null){
let cnt = 1;
let nextNum = null;
for(let j = i+1;j < arr.length;j++)
if(arr[j] == null)
cnt++
else{
nextNum = arr[j];
break;
}
if(nextNum == null)
throw "Не найдено следующие число";
let step = (nextNum - arr[i])/cnt;
for(let j = i+1,c = arr[i]+step;j < arr.length;j++,c+=step)
if(arr[j] == null)
arr[j] = c;
else
break;
}
}
return arr;
}
Array.from(document.querySelectorAll("div h2")).filter(e=>e.innerHTML == "hello").forEach(e=>e.parentNode.style.display="none");
/^[a-z]*\n?[a-z]*$/gi.test(`abc
dsa`)
let f = function(e){
if(e.target.parentNode && e.target.parentNode.classList && e.target.parentNode.classList.contains("search-icon"))
document.querySelector(".search-input").classList.remove("active");
}
document.addEventListener("click",f,false);
document.addEventListener("touchstart",f,false);
canvas.addEventListener('mousemove', function(event) {
let scaleFactor = 1150/plan.offsetWidth;
event = {
offsetX:event.offsetX*scaleFactor,
offsetY:event.offsetY*scaleFactor
}
for(let i = arr.length - 1; i >= 0; i--) {
...
function check(o){
if(Array.isArray(o))
return o.some(e1=>check(e1));
if(typeof(o) == "object"){
if(o.intValue && o.intValue === 1)
return true;
return Object.keys(o).some(e1=>check(o[e1]));
}
return false;
}
let filterArr = arr.filter(e=>check(e));