如何用javascript创建三维数组我想把数据插入数组中,这有助于我的代码

How to create 3 dimension array in javascript i want data to be inserted in my array help me out with my code

本文关键字:数组 插入 代码 我的 有助于 数据 javascript 何用 创建 三维      更新时间:2024-03-19

我有一个带有results参数的函数,该参数由question_id和question组成,作为sql查询的结果,我想在下面创建一个数组,如下所示

quesArray['id']['1']['ques']=results['question'];

这是我的代码

var len = results.rows.length;
   console.log("DEMO table: " + len + " rows found.");
   var quesArray=new Array();
     for (var i=0; i<len; i++){
        console.log("Row = " + i + " ID = " + results.rows.item(i).del_ques_id + " Data =  " + results.rows.item(i).question);
        quesArray['id']['1']['ques']=results['question'];
     }

您正在尝试使用关联数组,它是"对象"。请参阅此处

JavaScript中没有键控数组。但是你可以嵌套数组:

(function () {
  
  "use strict";
  
    var threeDimArray = [
        [
            [1, 2, 3], [4, 777, 7]
        ],
        [
            [5, 4, 2], [4, 3, 5]
        ]
    ];
    // this will output 777 to the browser console
    console.log(threeDimArray[0][1][1]);
}());

因此,如果您想保留数组,请将输出转换为数组结构,或迭代对象数组(php是否返回json?)

var quesArray=new Array();
 for (var i=0; i<len; i++){
    quesArray[results.rows[i].del_ques_id] = results.rows[i].question);
 }

根据您提供的数据,这将是正确的方法。您似乎在将PHP代码混合到JavaScriptitem(i)中。JavaScript使用[index]通过索引访问规范数组。

那么解决方案是什么呢:在循环中根据id创建一个数组索引。

quesArray[results.rows[i].del_ques_id]

并将数据附在上面:

results.rows[i].question)

这将产生一个一维数组。

但是,您可以扩展

var quesArray=new Array();
 for (var i=0; i<len; i++){
    quesArray[results.rows[i].del_ques_id] = []; create a new array, dimension 2
            quesArray[results.rows[i].del_ques_id].push(results.rows[i].question)); //add the question as a row.
 }

这将创建一个二维数组,其中id索引可以包含多个条目。

请记住,索引只能是整数,因此如果您的id是基于字符串的,这仍然可以工作,但数组将它们存储为对象属性,并且它们不可通过默认数组方式枚举。那么你需要一个不同的方法。