const counter = {};
// пройти по массиву, заполняя counter
arr.forEach((el) => counter[el] = (counter[el] || 0) + 1);
{
555: 1,
30167380: 2,
496903611692199: 1,
245970100361652: 2,
711023259278888: 2
}
const even = [...document.querySelectorAll(".flex-sec > div:nth-child(even)")];
const odd = [...document.querySelectorAll(".flex-sec > div:nth-child(odd)")];
const className = '_tog-sw';
let counter = 0;
document.querySelector(".flex-sec > button")
.addEventListener('click', () => {
counter++;
[odd, even].forEach((arr, i) => {
arr.forEach((el) => el.classList[i === (counter & 1) ? 'add' : 'remove'](className));
});
});
sort()
— это только весы с двумя чашами:a - b
. Например, массив объектов типа [
{name: "Вольдемар", iq: 165},
{name: "Сигизмунд", iq: 178},
{name: "Жоржик", iq: 85},
]
захочется отсортировать по свойству iq
. Тогда функция должна будет возвращать a.iq - b.iq
$("#btnLike").one('click', function() { // .one() выполнится только 1 раз
// ........код
// кнопку больше не нажимать:
$(this).attr('disabled', true); // и стилями сделать её блеклой
$.ajax({
method: 'post',
url: "https://site.com/like.php",
dataType: 'text',
data: {
'like': 1
},
success: function(result) { // обработка ответа
if (result != 'OK') {
// вывести ошибку из ответа
}
// ......результат;
}
});
});
function check() {
const rules = { // имя: длина
"fcard": 16,
"fexpm": 2,
"fexpy": 2,
"fcvc": 3,
};
const colorOk = '#009cde';
const colorFail = '#de0000';
let allValid = true;
for (let name in rules) {
const el = document.querySelector(`input[name='${name}']`);
const isValid = el.value.length >= rules[name];
el.style.borderColor = isValid ? colorOk : colorFail;
if (! isValid) {
allValid = false;
}
}
if (allValid) {
document.getElementById('anus-p').submit();
} else {
return false;
}
}
length
есть не только у строки и массива: например, есть length
и у Function
.function f(a, b, c) {}
f.length // 3 - число аргументов
length
— на этом и заканчиваются общие черты, пожалуй? У строки чтение символа по его позиции через квадратные скобки — скорее просто синтаксический «сахар», более короткая запись метода строки charAt()
var1
— в одной функции.let var1 = 1;
// основная логика — тут.
function logic(value) {
alert(value);
}
// по мышиному событию
function mouseHandler(event) {
logic(var1);
}
// напрямую
logic(var1);
window
, если глобальная), и менять её содержимое не в оригинальном объекте, а в его прокси. Может, даже заменить исходный объект на его прокси (не получится, если window
).reduce()
выполнится для каждой буквы: a, b, c и d.i
попадает очередная буква.part
первый раз туда попадает пустой объект obj
. И ссылка на него сохраняется - её и вернём как результат.reduce
функцию можно так переписать, делает то же самое: function (part, i) {
const empty = {}; // новая матрёшка
part[i] = empty; // вложили её в предыдущую
return empty; // новая матрёшка станет part'ом при следующем вызове
}