JS Array не работает push

295
10 августа 2021, 14:50

Должен добавлять значения типа

sendBtn.onclick = () => {
    msgList.messages.push({'message': sendInput.value, 'isHidden': false});

в msgList = {'messages': []}; //[];

Но ничего не добавляется

В идеали бы даже без messages иметь массив. Недавно все работало именно так, не пойму что случилось, когда код не менял...

нашел проблему:

function addMessage(msg) {
    newLi = document.createElement('li');
    newLi.textContent = msg;
    newLi.className += 'msg-area__msg-' + --msgList.messages.length;
    list.appendChild(newLi);
    newLi.scrollIntoView();
}

--msgList.messages.length - именно -- портит код и создает проблему. Но КАК это происходит, почему!?

Answer 1
newLi.className += 'msg-area__msg-' + --msgList.messages.length;

Ну сам же написал в вопросе, что этот код кривой... Надо так.

newLi.className += 'msg-area__msg-' + (msgList.messages.length - 1);

А ещё не понимаю, какой вообще смысл уникальные классы вешать. Может тогда уж полезнее будет id использовать?

READ ALSO
Undefined при попытке вывести элемент массива (FileReader) [дубликат]

Undefined при попытке вывести элемент массива (FileReader) [дубликат]

При попытке вывести любой элемент массива получаю undefined, однако если вывести весь массив через consolelog, то он выводится

206
Работа с двусвязным списком на C++, классы

Работа с двусвязным списком на C++, классы

Нужно создать двусвязный список и проделать с ним некоторые действия - a) Добавить новый элемент в начало, b) Убрать первый элемент, c) Добавить...

223
Множественное обьявление

Множественное обьявление

Вот, что выдает компилятор, все функции и переменные объявлены один раз

109
Какая разница между a.b и a->b?

Какая разница между a.b и a->b?

У меня есть код, с двумя вариантами, первый который работает с оператором afirst и второй который работает с оператором a->first для меня разницы...

260