解析JSON阵列推JavaScript的

问题描述 投票:0回答:3

我的Json解析列表,它需要按每个类别列表。例如:

    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
javascript push splice
3个回答
4
投票

只需使用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);

3
投票

下面应该会为你所做的工作。在环路一种是你的朋友,当谈到工作对象。

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(var char in listChartPeriods){
	categoryData.push(char)
}
console.log(categoryData);

0
投票

以下解决方案:

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

categoryData = [ “2018年5月4日”, “2018年5月11日”, “2018年5月18日”, “2018年5月25日”, “2018年6月1日”]

值= [21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442,21807210.5028442]

© www.soinside.com 2019 - 2024. All rights reserved.