const index = arr.findIndex(n => n.id === id);
if (index !== -1) {
arr.splice(index, 1);
}
const newArr = arr.filter(n => n.id !== id);
for (let i = arr.length; i--;) {
if (arr[i].id === id) {
arr.splice(i, 1);
}
}
reduceRight
используется не совсем по назначения, как и оператор &&
):arr.reduceRight((_, n, i, a) => n.id === id && a.splice(i, 1), null);
let countDeleted = 0;
for (let i = 0; i < arr.length; i++) {
arr[i - countDeleted] = arr[i];
countDeleted += arr[i].id === id;
}
arr.length -= countDeleted;
arr.splice(0, arr.length, ...arr.filter(n => n.id !== id));
numbers.filter(n => !objects.some(m => m.number === n))
numbers.filter(function(n) {
return !this.has(n);
}, new Set(objects.map(n => n.number)))
numbers.filter(((nums, n) => !nums.includes(n)).bind(null, objects.map(n => n.number)))
Object.values(objects.reduce(
(acc, n) => (delete acc[n.number], acc),
numbers.reduce((acc, n) => (acc[n] = n, acc), {})
))
Array.from(objects.reduce(
(acc, n) => (acc.delete(n.number), acc),
new Map(numbers.map(n => [ n, n ]))
).values())
users=(.*)&
const url = new URL('http://mysite.com/page?users=all&page=2');
const params = new URLSearchParams(url.search);
const users = params.get('users');
console.log(users); // -> all
const wrapper = document.createElement('DIV') // создаем обертку
wrapper.className = 'myClass' // с классом
const target = document.querySelector('.root-content') // ищем целевой див
target.insertAdjacentElement('afterend', wrapper) // вставляем обертку сразу после цели
wrapper.appendChild(target) // перемещаем целевой внутрь обертки