Хочу создать многомерный массив, заполненный значения двух атрибутов, чтобы вышло что-то вроде:
"marks": [
[2,1],
[1,2]
]
Но выпадает ошибка
TypeError: Cannot set property '0' of undefined
Код следующий, ошибка в данном случае в районе marks[i] =
:
var marks;
var cols2 = document.querySelectorAll('.speech_gap');
cols2.forEach(function (speech, i) {
marks[i] = [speech.getAttribute("emotion"), speech.getAttribute("who")];
});
Что не так?
В данном случае не инициализирована переменная marks. Ее значение по умолчанию - undefined.
Поэтому при вызове marks[i]
происходит ошибка. Для решения, достаточно инициализировать данную переменную массивом
var marks = [];
Кроме того, раз уж на основе одной коллекции нужно составить другую, лучше использовать метод map, который специально для этого предназначен
var cols2 = document.querySelectorAll('.speech_gap');
var marks = Array.from(cols2).map(function (speech, i) {
return [speech.getAttribute("emotion"), speech.getAttribute("who")];
});
Array.from используется для того, чтобы получить из коллекции col2 массив, у которого есть метод map.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеПроблема состоит в том, что когда я запускаю рисование на одной вкладке, перехожу на вторую, а через 5 (без разницы сколько) секунд...
Я пытаюсь написать свою собственную карусель на Angular2, но не знаю как это сделать правильно ( тк
Как сделать перевод, для скриптов, которые выводят текст в тэги если они такие:
Есть функция loadPhoto которая принимает id пользователя, id альбома и offsetЕсли offset не передан то по дефолту он равен 0