value['key'](...args)
Do not allocate extra space for another array. You must do this by modifying the input array in-place with O(1) extra memory.
само создающихся циклов
'a'
и остался массив на 1 короче: ['b', 'c', 'd']
Родственные селекторы по своему поведению похожи на соседние селекторы (запись вида E + F), но в отличие от них стилевые правила применяются ко всем близлежащим элементам. К примеру, для селектораh1~p
стиль будет применяться ко всем элементам , располагающихся после заголовка<h1>
. При этом<h1>
и<p>
должны иметь общего родителя, так что если<p>
вставить внутрь<div>
, то стили применяться уже не будут.
#check:checked ~ .box .stop
^
- это операция XOR. XOR вернёт единицу в том случае, если один из операндов (битов) 1 а другой 0. Таким образом, к примеру, 3 ^ 5
вернет 6 потому, что 0b011 ^ 0b101
(для простоты, биты будем считать слева направо):0 ^ 1 = 1
.1 ^ 0 = 1
.1 ^ 1 = 0
.0b110 = 6
.undefined ^ N
или 0 ^ N
, что вернёт нам само число. const getDuplicatesIndex = (arr, key = n => n) =>
Object.fromEntries(Object
.entries(arr.reduce((acc, n, i) => ((acc[key(n)] ??= []).push(i), acc), {}))
.filter(n => n[1].length > 1)
);
Map
:const getDuplicatesIndex = (arr, key = n => n) =>
new Map(Array
.from(arr.reduce((acc, n, i) => {
const k = key(n);
acc.set(k, acc.get(k) ?? []).get(k).push(i);
return acc;
}, new Map))
.filter(n => ~-n[1].length)
);
function test() {
const a = [1];
return a[0] += 3; // что вы вернет?
}
a
?// с запятой
array.reduce((a,b,i)=>function(){
const sum = a[i%2] + b; // вычисление
a[i%2] = sum; // присваивание
return a; // возврат массива
}, [0,0]);
// без запятой
array.reduce((a,b,i)=>function(){
const sum = a[i%2] + b; // вычисление
a[i%2] = sum; // присваивание
return sum; // возврат результат суммирования
// и на следующей итерации будет ошибка из-за попытки обратиться к числу как к массиву.
}, [0,0]);
array.reduce(
(acc, current, i) => {
acc[i % 2] += current; // к чётному/нечетному прибавить
return acc; // вернуть массив
},
[0, 0] // начальное значение
)
let a, b;
console.log(
( a = 2 + 2, b = ["QnA", "Habr", "com"].join("."), "Отметить решением" )
);
// "Отметить решением"
/\b(?!code\b)\w+/gi
/\w+\b(?<!\bcode)/gi
/\b(?!(?:word1|word2|word3)\b)\w+/gi
/\w+\b(?<!\b(?:word1|word2|word3))/gi