【问题标题】:Parse Json array push javascript解析 Json 数组推送 javascript
【发布时间】:2019-07-05 16:32:20
【问题描述】:

我有 Json Parse 列表,需要推送每个类别列表。 示例:

    listChartPeriods={"2018-05-04":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-11":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-18":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-25":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-06-01":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442]}
  var categoryData = [];
  var values = [];
  for(var i=0;i<listChartPeriods.length;i++){
      categoryData.push(listChartPeriods.slice(0,1)[0]); //here need to push each date  
      values.push(listChartPeriods[i])
   }

预期输出:

categoryData=["2018-05-04","2018-05-11","2018-05-18","2018-05-25","2018-06-01"]

 values=[21807210.5028442,21807210.5028442,21807210.5028442]//each category values

【问题讨论】:

  • 预期输出是什么?
  • 您发布的代码中没有任何 JSON。 JSON 是一些数据结构的文本表示。你所拥有的只是一个属性是数组的对象。没有 JSON。

标签: javascript push splice


【解决方案1】:

只需使用Object.keys 即可获取数组中的日期。

const listChartPeriods={"2018-05-04":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-11":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-18":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-25":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-06-01":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442]}
var categoryData = Object.keys(listChartPeriods);
console.log(categoryData);

【讨论】:

    【解决方案2】:

    下面应该可以为您完成工作。在处理对象时,for in 循环是您的朋友。

    var listChartPeriods={"2018-05-04":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-11":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-18":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-05-25":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442],"2018-06-01":[21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442]}
    var categoryData = [];
    
    for(var char in listChartPeriods){
    	for(var i = 0; i < listChartPeriods[char].length; i++){
    		categoryData.push(listChartPeriods[char][i]);
    	}
    }
    console.log(categoryData);

    编辑:只需阅读您更新的问题,您只需要键名。您也可以使用 for in 循环来执行此操作。

    for(var char in listChartPeriods){
    	categoryData.push(char)
    }
    console.log(categoryData);

    【讨论】:

      【解决方案3】:

      按照解决方案:

       for (let date in listChartPeriods){
          categoryData.push(date);
          let [first] = listChartPeriods[date];
          values.push(first);
       }
      

      categoryData = [“2018-05-04”、“2018-05-11”、“2018-05-18”、“2018-05-25”、“2018-06-01”]

      值 = [21807210.5028442、21807210.5028442、21807210.5028442、21807210.5028442、21807210.5028442]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        • 2012-04-17
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多