索引javascript数组出现问题

Indexing javascript array trouble

本文关键字:问题 数组 javascript 索引      更新时间:2023-09-26

下面的代码从JSON对象中获取数据。问题是,我似乎无法将我想要的分别存储在数组中。我希望我的数组具有以下结构:

数组=[0]['start']='Date1',[0]['end']='Date2',[0]['name']="NameN'

等等。等等,阵列索引为nth长度

所以你可以想象这个数组的多个条目,我可以通过它们的索引来访问它们。

var array = new Array();
var label;
data = JSON.parse(data);
$.each(data.rows, function(i, row) {  
    $.each(row.c, function(j, item) {
        if(j == 0){
           label = 'start';
        }
        if(j == 1){
           label = 'end';
        }
        if(j == 2){
           label = 'name';
        }
        if(j == 0 || j == 1 || j == 2){
            array[i]["test"] = item.v;
            //console.log('array['+i+']['+label+'] = '+ item.v);
        }
        //console.log(item.v);
    });
});

有没有用JavaScript实现这一点?感谢

编辑:我的原始JSON

{"cols":[{"id":"","label":"start","pattern":"","type":"datetime"},{"id":"","label":"end","pattern":"","type":"datetime"},{"id":"","label":"content","pattern":"","type":"string"}],"rows":[{"c":[{"v":"Date(2014, 3, 25)","f":null},{"v":"Date(2014, 4, 2)","f":null},{"v":"Subgoal A","f":null}]},{"c":[{"v":"Date(2014, 4, 2)","f":null},{"v":"Date(2014, 4, 9)","f":null},{"v":"Subgoal B","f":null}]}],"p":null}

JavaScript中没有多维数组。您要查找的是一组对象。只需创建一个输出数组,在JSON上循环,然后向数组中推送一个新对象。

var out = [];
for (var i = 0, l = data.rows.length; i < l; i++) {
  var row = data.rows[i].c;
  out.push({
    start: row[0].v,
    end: row[1].v,
    name: row[2].v
  });
}
for (var i = 0, l = out.length; i < l; i++) {
  console.log(out[i].start);
}

输出

Date(2014, 3, 25)
Date(2014, 4, 2)

演示

您可以使用索引访问对象,例如:

out[1] // { start="2014-12-13", end="2014-12-14", name="Mo2" }

您甚至可以设置一个函数,根据其密钥和值检索任何对象:

function fetch(key, value) {
  return out.filter(function (el) {
    return el[key] === value;
  });
}

DEMO