D3. js создать новый массив со значениями nest () - PullRequest
0 голосов
/ 14 апреля 2020

Я сейчас изучаю d3. js и хочу установить свой набор данных для временных рядов в js, чтобы составить линейный график.

Я хочу сгруппировать все локальные и создать массив для этих случаев. и построить их по дате

Прямо сейчас это мой вывод

Object {0: Object, 1: Object, 2: Object, 3: Object, 4: Object…}
0: Object
date: "2020-03-08"
local: "MG"
occurrence: 1
1: Object
date: "2020-03-09"
local: "MG"
occurrence: 2
2: Object
date: "2020-03-11"
local: "BH"
occurrence: 1

Но я хочу установить вот так

Object{
entries: Array(n) [0: Object {local: "MG", occurrence: Array{1, 2, ..}, 1: Object {local: "BH", occurrence: Array{1 ...}]
date: Array(d) [0: 2020-03-08, 1: 2020-03-09, ...]
}

Я пытаюсь использовать nest () и rollup (), но я хочу массив со всеми вхождениями, но я не знаю, как получить к нему доступ, потому что он внутри values, а затем внутри occurrence

1 Ответ

0 голосов
/ 14 апреля 2020

Мне удается решить собственную проблему благодаря @Mehdi, который дает мне эту ссылку - d3 Группировка и суммирование

Что мне нужно сделать, это сгруппировать данные по локальным

data = d3.nest().key(d => d.local)

принять все записи моего вхождения

  .rollup(v => {
    return{
      occur: d3.set(v, d => {
        return d.occurrence;
      }).values()
    }
  })
  .entries(data)

сопоставить мои данные, чтобы получить только те значения, которые я хочу

  .map(d => {
    return{
      local: d.key,
      occur: d.value.occur
    }
  });

Что я не уверен, так это карта (), если он действительно исключает все другие массивы, которые были инициализированы или где-то еще

...