2016-07-06 47 views
0

嗨我想知道是否有可能廣告元素到一個數組至極聲明如下... 請檢查add()函數,我無法弄清楚如何解決這個問題呢。謝謝Js:多維數組文字聲明:添加元素

這不是必然的,但我會很感激,如果你給自C++的觀點程序員的解釋。

// My array is this way declared 
var myArray = [ 
    ['John', 'Doe', '1980'], 
    ['Jane','Malloy','1982'], 
    ['Vincent','Malloy','1972'] 
]; 

// then I want to add a new elements in it, but It seems to doesn't work 
var add = function() { 

    //var textbox = document.getElementById('textbox').value; 

    // storing new person in array 
    myArray [3][0] = 'New1'; 
    myArray [3][1] = 'New2'; 
    myArray [3][2] = 'New3'; 
}; 

//finnaly this function is for displaying the elements of myArray 
var show = function() { 

    // clean output 
    document.getElementById('output').innerHTML = ''; 

    // delay time 
    setTimeout (function() { 

    // showing info. people 
     for (var i in myArray) { 
      for (var j in myArray) 
       document.getElementById('output').innerHTML += myArray[i][j] + ' '; 

      document.getElementById('output').innerHTML += '<br/>'; 
     } 

    }, 250); 
}; 
+0

問題是什麼? – ampawd

+0

裏面的add()函數:添加新的元素到數組中,它不起作用 –

回答

2

所以就在這裏:

var add = function() { 

    //var textbox = document.getElementById('textbox').value; 

    // storing new person in array 
    myArray [3][0] = 'New1'; 
    myArray [3][1] = 'New2'; 
    myArray [3][2] = 'New3'; 
}; 

您不能添加到myArray[3]因爲myArray[3]是不確定的。你需要一個空數組分配給myArray[3]第一:

myArray [3] = []; 
    myArray [3][0] = 'New1'; 
    myArray [3][1] = 'New2'; 
    myArray [3][2] = 'New3'; 

或者更一般地說,假設想法是添加到您的數組的末尾,你可以這樣做:

var idx = myArray.length; 
myArray[idx] = []; 
myArray[idx][0] = "New 1"; 
// ... 

甚至例如:

var newArray = ["New1", "New2", "New3"]; 
myArray.push(newArray); 
+0

...我懷疑那個。謝謝先生。 –