Данные карты Javascript, соответствующие значению переменной - PullRequest
0 голосов
/ 07 февраля 2019

Я работал над проектом Chart , и мне нужно показать некоторые значения с помощью всплывающей подсказки, когда я перемещаю мышь над областью графика.Так что это мои данные, которые мне нужно отобразить -

    {  
   "item":[  
      {  
         "name":"abcd",
         "in":12,
         "out":2,
         "net":10,
         "child":[  
            {  
               "name":"Test",
               "in":2,
               "out":2,
               "net":0,
               "child":null
            },
            {  
               "name":"Max",
               "in":10,
               "out":0,
               "net":10,
               "child":null
            }
         ]
      },
      {  
         "name":"Dress",
         "in":43,
         "out":0,
         "net":43,
         "child":[  
            {  
               "name":"Class-1",
               "in":35,
               "out":0,
               "net":35,
               "child":null
            },
            {  
               "name":"One",
               "in":8,
               "out":0,
               "net":8,
               "child":null
            }
         ]
      }
   ]
}

Мне нужно отобразить child, когда они совпадают с любой из переменных, таких как name или in.

Я использовал этот способ jsondata.map(sale => sale.child), но он отображает все дочерние значения.Как я могу это сделать?

Ответы [ 3 ]

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

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

let child = item
  .filter(sale => sale.name === "abcd" || sale.in === "value")
  .map(sale => sale.child);

console.log(child);
0 голосов
/ 07 февраля 2019

Вы можете сначала filter элемент, а затем использовать map.Если вы хотите несколько условий:

item.filter(sale => sale.name === "abcd" || sale.in === "value")
    .map(sale => console.log(sale.child));
0 голосов
/ 07 февраля 2019

Сначала нужно отфильтровать и использовать карту.Например, если вы ищете дочерний элемент записи, которая содержит строку «abc», вы сделаете это так

const records = items.filter(item => item.name.indexOf("abc") > -1);
const children = records.map(r => r.child)
...