2012-11-01 41 views
0
lyricsInp = document.getElementById("lyrics").value; 
var lines = lyricsInp.split("\n"); 
for (i = 0; i < lines.length; i++) { 
    holder[0][i] = new Array(); 
    words = lines[i].replace(/[ \t\r]+/g, "###").split("###"); 
    for (j = 0; j < words.length; j++) { 
     holder[0][i][j].word = words[j]; 
     holder[0][i][j].startT = 0; 
     holder[0][i][j].endT = 0; 
    } 
} 

在這裏,我需要每個持有人元素保持word,startTendT,但這是行不通的。我如何做到這一點。如何在JavaScript中創建3D對象數組?

+1

什麼是'保持器[0]'?什麼不行?代碼似乎很好(除非有一些不必要的全局變量) – Bergi

+0

嘗試'['word']'而不是'.word' ...或者使用JavaScript對象而不是數組。 – Chase

回答

1

申報holder[0][i][j]作爲對象常量:

for (j = 0; j < words.length; j++) { 
    holder[0][i][j] = {}; 

    holder[0][i][j].word = words[j]; 
    holder[0][i][j].startT = 0; 
    holder[0][i][j].endT = 0; 
} 
0
lyricsInp = document.getElementById("lyrics").value; 
var lines = lyricsInp.split("\n"); 
for (i=0;i<lines.length;i++){ 
    holder[0][i] = new Array(); 
    words = lines[i].replace(/[ \t\r]+/g,"###").split("###"); 
    for (j=0;j<words.length;j++){ 
     holder[0][i][j] = { 
       word: words[j], 
       startT: 0, 
       endT: 0 
      }; 
    } 
} 
0
var holder = [[]]; 

var lyricsInp = document.getElementById("lyrics").value, 
    lines = lyricsInp.split("\n"); 
for (var i = 0; i < lines.length; i++) { 
    holder[0][i] = []; 
    var words = lines[i].replace(/[ \t\r]+/g, "###").split("###"); 
    for (var j = 0; j < words.length; j++) { 
     holder[0][i][j] = { 
      word: words[j], 
      startT: 0, 
      endT: 0 
     }; 
    } 
}