Добавление элементов из массива в объекты в другом массиве - PullRequest
0 голосов
/ 10 апреля 2020

Я в настоящее время перебираю имеющиеся у меня данные, получаю все значения для указанного столбца c и добавляю их в массив, затем ограничив его только уникальными значениями.

У меня также есть * Массив 1003 *, который должен быть динамическим c в зависимости от того, сколько элементов находится в моем массиве date_group. Как я могу l oop через эти массивы и добавить значения к объектам id и name в моем reportSections массиве?

В идеале, я думаю, что там могут быть какие-то l oop, который может l oop через массив reportSections и динамически добавлять значения внутри массивов date_group и record_group к объектам id и name, но не уверен, как это будет работать.

  var date_group = [];
  var record_date = [];
    var i;
    for (i = 0; i < data.length; i++) {
      date_group.push(data[i]['date group']);
      record_date.push(data[i]['record date']);
    }

    date_group = _.uniq(date_group);
    record_date = _.uniq(record_date);

  const reportSections = [
    {id: 'date_group1', name: 'record_date1'},
    {id: 'date_group2', name: 'record_date2'},
    {id: 'date_group3', name: 'record_date3'},
    {id: 'date_group4', name: 'record_date4'},
    {id: 'date_group5', name: 'record_date5'},
    {id: 'date_group6', name: 'record_date6'},
  ];

1 Ответ

1 голос
/ 10 апреля 2020

Что касается создания уникальных предметов, я смущен, глядя на ваш вопрос, но попробуйте это решение.

Используйте set для уникальных записей

let data = [{
    "date group": "C",
    "record date": "13 Mar 20"
  },
  {
    "date group": "B",
    "record date": "11 Mar 20"
  },
  {
    "date group": "A",
    "record date": "11 Mar 20"
  },
  {
    "date group": "B",
    "record date": "12 Mar 20"
  },
  {
    "date group": "C",
    "record date": "11 Mar 20"


  }
]
let reportSections = [];
let dataGroups = new Set();
let recordDates = new Set();
data.forEach(item => {
  dataGroups.add(item['date group']);
  recordDates.add(item['record date'])
})
for (const [index, value] of [...dataGroups].entries())
  reportSections.push({
    id: value,
    name: [...recordDates][index]
  })
console.log(reportSections);
.as-console-wrapper {
  max-height: 100% !important;
  top: 0;
}
...