arr1.filter(n => arr2.includes(n)).length !== 0
// или
arr1.some(function(n) {
return this.has(n);
}, new Set(arr2))
// или
new Set([ ...arr1, ...arr2 ]).size < new Set(arr1).size + new Set(arr2).size
!!new Set(arr1).intersection(new Set(arr2)).size
<div id="city">
<img src="img/flag-m.png" />
<span>Москва</span>
</div>
document.querySelector('ul').addEventListener('click', e => {
const li = e.target.closest('li');
if (li) {
document.querySelector('#city img').src = li.dataset.gerb;
document.querySelector('#city span').textContent = li.dataset.city;
}
});
// или
document.querySelectorAll('li').forEach(n => {
n.addEventListener('click', onClick);
});
function onClick({ target: { dataset: { city, gerb } } }) {
document.querySelector('#city img').src = gerb;
document.querySelector('#city span').textContent = city;
}
color.bind(null, i)
надо сохранить - в какой-нибудь массив, например.const elements = document.querySelectorAll('.x');
const delay = 1000;
const updateElement = el => el.style.display = 'block';
elements.forEach((n, i) => setTimeout(updateElement, i * delay, n));
let index = -1;
const intervalId = setInterval(() => {
const el = elements.item(++index);
if (el) {
updateElement(el);
} else {
clearInterval(intervalId);
}
}, delay);
(function next(index) {
if (index < elements.length) {
setTimeout(() => {
updateElement(elements[index]);
next(index + 1);
}, delay);
}
})(0);
str.match(/\w+$/)[0]
str.split(/\W/).pop()
str.replace(/.*\W/, '')
-1
, с единицей это 0
, т.е., начало строки) и до конца:str.slice(1 + Math.max(...[...'@/'].map(n => str.lastIndexOf(n))))
[...str].reduce((acc, n) => '@/'.includes(n) ? '' : acc + n, '')
const closeInfoWindows = (...windows) => windows.forEach(w => w && w.close());
[object Object]
.$('<table class="table fixedheader footable">').html(clone)
<p data-letter="2">П</p>
<p data-letter="0">Ж</p>
<p data-letter="3">А</p>
<p data-letter="1">О</p>
const word = $('[data-letter]')
.sort((a, b) => $(a).data('letter') - $(b).data('letter'))
.text();
// или
const word = Array
.from(document.querySelectorAll('[data-letter]'))
.reduce((acc, n) => (acc[n.dataset.letter] = n.innerText, acc), [])
.join('');
onChange([ date ]) {
endDate.set('minDate', +date + 1000 * 60 * 60 * 24 * 14);
},
orderlist
проверяйте orderlist[0][0]
. Если заранее не знаете - сделайте метод, который проверит всё:const inArray = (arr, val) =>
arr.some(n => Array.isArray(n) ? inArray(n, val) : Object.is(n, val));
// или
const inArray = (arr, val) =>
arr.flat(Infinity).includes(val);