const example = ["1", "se", "thi", "four"].reduce((acc, el) => {
acc = el + '!!!' + el.length + '!!!';
return acc
},
[]);
console.log(example);
На выходе у нас four!!!4!!!
Хотя я ожидал увидеть все измененные элементы в списке.
Насколько я понимаю
,
[]
именно вот этот участок кода отвечает за то, куда будут накапливаться результаты.
Я поставил список и ожидал, что измененные элементы окажутся там, почему их там нет?
Потому, что reduce так не работает. Согласно документации:
array.reduce(callback[, initialValue])
callback(accumulator, element) - функция обратного вызова, которая принимает предыдущий результат accumulator
и по очереди каждый элемент массива element
.
initialValue - начальное значение для accumulator
, если не задано, то оно равно первому элементу массива и в качестве element сразу передается второй элемент массива.
[1,2,3].reduce((acc, el) => {
console.log(acc, el)
acc = el + '!!!';
return acc
}, "это первое значение для accumulator");
Если вы хотели вернуть все в массиве, то нужно было их туда добавлять самостоятельно.
const example = ["1", "se", "thi", "four"].reduce((acc, el) => {
acc.push(el + '!!!' + el.length + '!!!');
return acc
},
[]);
console.log(example);
Или использовать Map для таких случаев.
const example = ["1", "se", "thi", "four"].map((el) => {
acc = el + '!!!' + el.length + '!!!';
return acc
});
console.log(example);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Проблема, собственно, описана в заголовке) Ниже мой кодБуду благодарен за любые идеи
Нужен скрипт, который будет установлен на странице indexhtml и будет на странице /$user_id проверять, есть ли там <div id="reverbs5", если да - то применять...
У меня есть много тегов <img> и у некоторых из них вместо data-src="путь/к/картинке" стоит data-lazy="путь/к/картинке", и это ломает lazyload на моем сайте