【问题标题】:Js: multidimensional array literal declared: Add elementsjs:多维数组字面量声明:添加元素
【发布时间】:2016-07-06 18:43:17
【问题描述】:

我想知道是否可以将元素添加到声明如下的数组中... 请检查 add() 函数,我不知道如何解决这个问题。谢谢

这不是必需的,但如果你能从 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';
};

//finally 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);
};

【问题讨论】:

  • 问题是什么?
  • add()函数内部:向数组添加新元素,不起作用

标签: javascript arrays multidimensional-array


【解决方案1】:

所以就在这里:

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);

【讨论】:

  • ...我怀疑这一点。谢谢先生。
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2012-10-07
  • 2014-09-24
  • 2019-12-08
  • 1970-01-01
  • 2014-04-18
相关资源
最近更新 更多