Цикл чисел со значениями объекта и вывод pu sh в массив - PullRequest
0 голосов
/ 02 августа 2020

Это для линейного графика. Некоторые значения доступны в объекте "filterTime", и для недоступных значений в объекте необходимо заполнить "0".

для l oop соответствует значениям объекта и pu sh вывод в выбранный массив . Количество элементов в объекте - динамическое c.

Ожидаемый результат - 10 элементов Массив. Мой вывод - это массив из 20 элементов в соответствии с 2 элементами в объекте. Решение, необходимое для динамической обработки c количество элементов в объекте при цикле.

let dataa = {
  datasets: [{ data: [] }],
};

let filteredTime = { 4: "13.50", 7: "12.50" };

for (let step = 1; step <= 10; step++) {
  for (var i in filteredTime) {
    if (step != i) {
      dataa["datasets"].map((filteredPerson) => {
        filteredPerson.data.push(0);
      });
    } else {
      dataa["datasets"].map((filteredPerson) => {
        filteredPerson.data.push(filteredTime[i]);
      });
    }
  }
}

Вывод

Array(20): [0, 0, 0, 0, 0, 0, 0, "12.50", 0, 0, 0, 0, "13.50", 0, 0, 0, 0, 0, 0, 0]

" filterTime"Номера элементов объекта: динамика c.

Ожидаемый результат:

Array(10): [0, 0, 0, "12.50", 0, 0, "13.50", 0, 0, 0, ]

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Использование Array.from()

let filteredTime = { 4: "13.50", 7: "12.50" }

let result = Array.from({length: 10}, (v, i) => filteredTime[i + 1] || 0)

console.log(result)
0 голосов
/ 02 августа 2020
let dataa = {
  datasets: [{ data: [] }],
};

let filteredTime = { 4: "13.50", 7: "12.50" };

  for(let i=1;i<=10;i+=1){
    if(!filteredTime[i]){
      dataa.datasets[0].data.push(0)
   }else{
      dataa.datasets[0].data.push(filteredTime[i])
  }

}
...