Разбор массива Json push javascript - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть список разбора 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

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

Ниже следует выполнить работу за вас.Цикл 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.

for(var char in listChartPeriods){
	categoryData.push(char)
}
console.log(categoryData);
0 голосов
/ 12 февраля 2019

После решения:

 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]

0 голосов
/ 12 февраля 2019

Просто используйте 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);
...