使用变量在javascript中填充多维数组

时间:2018-05-24 16:35:17

标签: javascript multidimensional-array

一些背景知识。我正在使用一个名为vRealize Orchestrator的应用程序,它具有多个工作流程。每个工作流程都会记录三个变量,我需要将这些变量传递到表中。可以添加其他工作流程,因此我保持逻辑有点开放。这是我的代码。

if(inTable == null){
    outTable = new Array();
    outTable = ([testName],[testScore],[testNotes]);
}
else{
    outTable = new Array();
    outTable = inTable
    outTable.push([testName],[testScore],[testNotes]);
}

inTable将是包含模块所有结果的主数组。无论首先调用哪个模块,它都会初始化并将变量值推送到数组。如果inTable已有数据,则应该追加。

我可以存储数据,当我输出时,它看起来像这样" john,mary,steve"并被视为单个字符串,所以我以后不能解决它。我怎样才能将这些作为单独的元素,因此arry [0] [0]将等于" john"而不是" j"。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

认为这是您正在寻找的:

if(inTable == null){
    outTable = [[testName],[testScore],[testNotes]];
}
else{
    outTable = inTable;
    outTable[0].push(testName);
    outTable[1].push(testScore);
    outTable[2].push(testNotes);
}

这样,outTable[0][0]会为您提供"John"

作为个人说明,我不知道您对数据模型有多少控制权,或者您计划/必须使用它的具体程度,但这对我来说并不是最佳选择。通常当我们存储类似表的数据时,我们使用一个对象数组:

var table = [
    { name: 'John', score: 50, notes: 'Good effort' },
    { name: 'Alice', score: 60, notes: 'Well argued' },
];

这样,table[0].name会为您提供"John"

答案 1 :(得分:0)

将outTable分配给inTable时,您将按值分配。这意味着当您更新outTable时,它不会相应地更新inTable。使用您的问题的措辞,听起来您想要将值附加到inTable。如果我是正确的话,这将更接近你所寻找的。

if( inTable == null )
{
    inTable = new Array();
}

inTable.push( [testName], [testScore], [testNotes] );

这样

inTable[ index ][0] == [testName]
inTable[ index ][1] == [testScore]
inTable[ index ][2] == [testNotes]