与变量值匹配的Javascript映射数据

时间:2019-02-07 03:56:46

标签: javascript reactjs char

我一直在进行图表项目,当我将鼠标移到图表区域上时,需要使用工具提示显示一些值。这就是我需要映射的数据-

    {  
   "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
            }
         ]
      }
   ]
}

childnamein之类的任何变量匹配时,我需要进行映射。

我以这种方式使用jsondata.map(sale => sale.child),但它映射了所有子值。我该怎么办?

3 个答案:

答案 0 :(得分:2)

您可以使用“过滤器”按名称过滤,然后将其映射为这样。

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

console.log(child);

答案 1 :(得分:1)

您首先需要过滤和使用地图。例如,如果您要查找包含字符串“ abc”的记录的子级,则将这样做

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

答案 2 :(得分:1)

您可以先filter个项目,然后再使用map。如果您需要多种条件:

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