Как правильно фильтровать данные, чтобы получить массив для отображения на графике (Javascript)? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть функция, которая, когда я нажимаю на область карты, возвращает график с данными, взятыми из константы.

Моя константа:

    const Processi =
[
    {
      "": 0,
      "ANNO_DI_AVVIO": 2010,
      "PROCESSI_BONDENO": "1",
      "PROCESSI_CAMPOSANTO": "2",
      "PROCESSI_CAVEZZO": "3",
      "PROCESSI_CENTO": ""
},
    {
      "": 1,
      "ANNO_DI_AVVIO": 2011,
      "PROCESSI_BONDENO": "",
      "PROCESSI_CAMPOSANTO": "",
      "PROCESSI_CAVEZZO": "",
      "PROCESSI_CENTO": ""
},
    {
      "": 2,
      "ANNO_DI_AVVIO": 2012,
      "PROCESSI_BONDENO": "",
      "PROCESSI_CAMPOSANTO": "",
      "PROCESSI_CAVEZZO": "",
      "PROCESSI_CENTO": ""} ...and so on

название области только частично совпадает с ключами, поэтому внутри моей функции щелчка по карте у меня есть это, чтобы заставить его работать:

    const findValues = (key) => {
  key = key.toUpperCase();
  return Object.keys(Processi[0]).filter(item => item.indexOf(key) !=-1)

}  

let clicked = e.target.feature.properties.NOME_COM.toUpperCase();
let match = findValues(clicked)

Но когда я хочу отобразить его на графике, результат нет данных. Я хотел бы иметь массив с числами, чтобы, если я нажму на область на карте «BONDENO», я получу: [1, 0, 0]. Но ничего не отображается, так как строка, которую я включаю в часть данных на моем графике, выглядит так:

match.forEach(key =>Processi[0][key])

Пока этот код работает, если я хочу добавить некоторый текст, содержащий свойства (например, match.forEach(key =>$("#writehere").append('ok' + Processi[0][key]). Кроме того, я хотел бы, чтобы все индексы были включены, но если он не работает с одним, он не будет работать с другими. Что мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...