ключ d3.nest () / значение неопределенные значения - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь получить массив всех n значений из ключа / значений после вложения данных.Мне удалось console.log все n значений , но конечный результат, который я имею, это массив неопределенных [undefined, ..., undefined].

//Nesting data by category
let updatedData = d3.nest()
            .key(d => d.category)
            .sortValues((a, b) =>  a.year - b.year)
            .entries(data);

данныхпосле вложения:

key: "clothing, beauty, & fashion"
values: Array(11)
0: {year: 2004, category: "clothing, beauty, & fashion", n: 141}
1: {year: 2005, category: "clothing, beauty, & fashion", n: 203}
2: {year: 2006, category: "clothing, beauty, & fashion", n: 195}
3: {year: 2007, category: "clothing, beauty, & fashion", n: 296}


key: "computers & internet"
values: Array(11)
0: {year: 2004, category: "computers & internet", n: 2489}
1: {year: 2005, category: "computers & internet", n: 2200}
2: {year: 2006, category: "computers & internet", n: 2114}
3: {year: 2007, category: "computers & internet", n: 2402}

Теперь получите все n значений:

const nValues = [].concat.apply([], updatedData.map(d => d.values[d.values.forEach(d => console.log(d.n))]));
console.log(nValues);

Что я делаю не так?

1 Ответ

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

Вам просто нужно сопоставить клавишу values и вернуть n для всех сгруппированных данных

 const nValues = data.map(group => group.values.map(e=> e.n))

const data = [
  {
    "key": "clothing, beauty, & fashion",
    "values": [
      {
        "year": 2004,
        "category": "clothing, beauty, & fashion",
        "n": 141
      },
      {
        "year": 2005,
        "category": "clothing, beauty, & fashion",
        "n": 203
      },
      {
        "year": 2006,
        "category": "clothing, beauty, & fashion",
        "n": 195
      },
      {
        "year": 2007,
        "category": "clothing, beauty, & fashion",
        "n": 296
      }
    ]
  },
  {
    "key": "computers & internet",
    "values": [
      {
        "year": 2004,
        "category": "computers & internet",
        "n": 2489
      },
      {
        "year": 2005,
        "category": "computers & internet",
        "n": 2200
      },
      {
        "year": 2006,
        "category": "computers & internet",
        "n": 2114
      },
      {
        "year": 2007,
        "category": "computers & internet",
        "n": 2402
      }
    ]
  }
]
 
 const nValues = data.map(group => group.values.map(e=> e.n))
 console.log(nValues)
...