【问题标题】:get key value from array从数组中获取键值
【发布时间】:2013-04-11 09:29:56
【问题描述】:

我有这种格式的数组数据,我想获取键和值数组。 如何在 javascript 中从这个数组中获取键和值。

jsonData =  [
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves":  [false,false,false,false,false],"id":"p1","color":"0x000000"},
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves":  [false,false,false,false,false],"id":"p1","color":"0x000000"},
    {"dimensions":[5.9,3.9,4.4,3.1,4.8],"icon":0,"curves":  [false,false,false,false,false],"id":"p1","color":"0x000000"}
];

【问题讨论】:

  • 抱歉在这里直言不讳,但有什么问题? JSON 格式是一个数组。
  • json 数据已经是一个 javascript 数组。
  • 这不是 JSON,jsonData = 使它成为 JavaScript。 [] 使它成为一个数组。您已经有一个 JavaScript 数组。所以呼应thedixon,有什么问题?
  • @mohit:我们仍然不知道问题出在哪里!请说明您想要什么结果。您提供的信息越多,我们就越容易为您提供帮助。
  • @mohit:如果你理解了,那么问题就解决了吗?因为我们不明白。无论如何,我现在向您推荐这个问题:stackoverflow.com/q/11922383/218196

标签: javascript jquery arrays json


【解决方案1】:

我已经实现了这个解决方案

function getDataArray(name='', index=''){ 
   elements = generateDataArray("profiles");
   arrData = $.parseJSON(elements);  
   data = new Array();
   color = new Array();
   dataid = new Array();
   $.each(arrData,function(key,val){
       $.each(val,function(key2,val2){
     if(key2=="dimensions"){      
       data.push(val2)
      }else if(key2=="color"){
       color.push(val2)
       }

    })
    })

    number =0;
    newArray = new Array();
    while(number<data.length){
    newArray[number] = new Array(data[number],color[number])
    number++;
   }

      return newArray;
 }

【讨论】:

    【解决方案2】:

    更新:添加了eval。没有注意到它在一个字符串中。

    在我看来,您最大的问题是它全部包装在一个带有单个元素的数组中。你可以这样做:

    var element = eval(jsonData)[0];
    

    eval 用于将字符串转换为 javascript 对象。 然后,要访问任何内容(例如 dimensions 数组),请执行以下操作:

    var dimensions = element.dimensions;
    

    【讨论】:

    • 如果我们提醒(dimensions) this,dimensions 只返回单个“[”
    • 我的错 - 我没有看到数据在字符串中。我已经更新了答案以考虑到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    相关资源
    最近更新 更多