Я пытаюсь создать трехмерный массив dynamicall в javascript на основе плоского массива объектов. после цикла через массив массив кажется пустым. Если я печатаю в цикле, он, похоже, работает, но тогда он, кажется, исчез, и я хочу вернуть его вызывающему. Помогите ?Объем 3-мерного массива в javascript?
//init the 3d array ??
this.teams = [];
for(var i = 0; i < sportsStandings.length; i++) {
var item = sportsStandings[i];
if(!this.teams[item.league])
this.teams[item.league] = new Array();
if(!this.teams[item.league][item.division])
this.teams[item.league][item.division] = new Array();
this.teams[item.league][item.division][this.teams[item.league][item.division].length]
= new Team(item.teamName, item.wins, item.losses);
console.log(this.teams); //this prints properly, and i see the 3d array grow
}
console.log('second' + this.teams); //this prints nothing
Если эти свойства «лиги», «деления» и т. Д. Не являются числами, то вы на самом деле не строите массив, вы строите объект со свойствами. Поведение массива JavaScript применяется только к свойствам с числовой индексацией. Что именно находится в этом массиве «sportsStandings»? – Pointy
Кроме того, 'console.log' имеет разные типы форматирования печати в браузерах. Попробуйте использовать запятую вместо '+' – adu
Store 'sportsStandings [i]' в переменную и ссылаться на эту переменную, это поможет повысить производительность и упростит ее чтение. – epascarello