我一直在进行图表项目,当我将鼠标移到图表区域上时,需要使用工具提示显示一些值。这就是我需要映射的数据-
{
"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)
,但它映射了所有子值。我该怎么办?
答案 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));