如何在javascript中实现多维数组

时间:2016-03-19 14:18:36

标签: javascript json multidimensional-array

enter image description here我已经通过ajax调用了一个服务并得到了一个值列表,我已经将值解析为js object在下面的行

   var parseviewpresctiption = $.parseJSON(viewprescription);

我有一个20个值的数组作为json对象,它在每个对象中都有值。但是不同对象中的值属于单个问题id。所以我需要对值进行分组并基于id并将其存储在多维中我在上面的代码中已经声明了一个多维数组但是我无法将值存储在数组中而且它会抛出错误。

   var questions = {};
   for(var i=0 ; i<3 ; i++){
   questions[questionId][i] = {
                'questionId' : parseviewpresctiption[prop].option.optionId,
                'column' : parseviewpresctiption[prop].option.content,
                'row' : parseviewpresctiption[prop].question.content,
                'value' : parseviewpresctiption[prop].text,
                'table' : tableTypeName,
                'answerId' : parseviewpresctiption[prop].answerId
                          }
             };

如果我删除多维数组,如

           questions[questionId][i] = {
                'questionId' : parseviewpresctiption[prop].option.optionId,
                'column' : parseviewpresctiption[prop].option.content,
                'row' : parseviewpresctiption[prop].question.content,
                'value' : parseviewpresctiption[prop].text,
                'table' : tableTypeName,
                'answerId' : parseviewpresctiption[prop].answerId
                          }

具有该id的最后一个值将存储在数组中。如何声明多维数组并根据id对值进行分组

我需要获取值并将值附加到单个表行

示例数据                     宾语 answerId : 968 医生 : 空值 选项 : 宾语 内容 : &#34; N / A&#34; optionId : 8 的 : 宾语 患者 : 宾语 numVisits : 0 patientId : 66 rdoUser : 宾语 vipScore : 0 的 : 宾语 题 : 宾语 内容 : &#34;个人医生姓氏&#34; 救命 : 空值 选项 : 空值 题 : 空值 questionId : 43 问题类型 : &#34; TXT&#34; 的 : 宾语 questionnaireTemplate : 宾语 描述 : &#34;目前的医疗问题&#34; 名称 : &#34; MEDICAL_HISTORY&#34; questionnaireTemplateId : 12 rdoUser : 宾语 共享 : 假 的 : 宾语 序列号 : 空值 文本 : &#34; S&#34;

2 个答案:

答案 0 :(得分:0)

使用forEach方法,您应该查看此链接here
你可以console.log回复并删除屏幕截图,很难从您发布的数据样本中找出答案。

答案 1 :(得分:0)

您可以改用array map方法。

var questions = parseviewpresctiption.map(function(v) {
                    return {
                      questionId : v.option.optionId,
                      column : v.option.content,
                      row : v.question.content,
                      value: v.text,
                      table : tableTypeName, //I'm assuming that you
                      answerId: v.answerId
                    };
                });

这将返回对象数组。 对于迟到的回复队友抱歉!