我有如下所示的json数组,我需要基于以下条件进行筛选
过滤并得到结果"Attribute1“,其中包含”悲伤“
例如:过滤并得到结果"SubAttribute1“的"Attribute2”包含"tes“
所有的组合。
过滤并得到结果"Attribute1“,其中包含”悲伤“
或"SubAttribute1“的"Attribute2”包含"tes“
或"SubAttribute2“的"Attribute3”包含"tes“
注:可通过纯javascript或提交(首选)。
[
{
"Attribute1": [
"sada",
"dasa"
],
"Attribute2": [{
"SubAttribute1": "Test",
"SubAttribute2": "sdasd"
}, {
"SubAttribute1": "sdsadsadas",
"SubAttribute2": "sdsad"
}],
"Attribute3": [{
"SubAttribute1": "sdasd",
"SubAttribute2": "dsa"
}, {
"SubAttribute1": "sadasd",
"SubAttribute2": "sadas"
}]
},
{
"Attribute1": [
"ass",
"sd"
],
"Attribute2": [{
"SubAttribute1": "dsad",
"SubAttribute2": "xcxc"
}, {
"SubAttribute1": "erew",
"SubAttribute2": "errer"
}],
"Attribute3": [{
"SubAttribute1": "sdsdaasd",
"SubAttribute2": "sdsa"
}, {
"SubAttribute1": "das",
"SubAttribute2": "sad"
}]
}
]发布于 2019-10-24 03:51:17
你可以:
const data = [{"Attribute1": ["sada","dasa"],"Attribute2": [{"SubAttribute1": "Test","SubAttribute2": "sdasd"}, {"SubAttribute1": "sdsadsadas","SubAttribute2": "sdsad"}],"Attribute3": [{"SubAttribute1": "sdasd","SubAttribute2": "dsa"}, {"SubAttribute1": "sadasd","SubAttribute2": "sadas"}]},{"Attribute1": ["ass","sd"],"Attribute2": [{"SubAttribute1": "dsad","SubAttribute2": "xcxc"}, {"SubAttribute1": "erew","SubAttribute2": "errer"}],"Attribute3": [{"SubAttribute1": "sdsdaasd","SubAttribute2": "sdsa"}, {"SubAttribute1": "das","SubAttribute2": "sad"}]}]
/**
Combination of all.
eg: Filter and get result "Attribute1" which contains "sad"
OR "SubAttribute1" of "Attribute2" contains "tes"
OR "SubAttribute2" of "Attribute3" contains "tes"
*/
const result = data.filter(
obj => /sad/.test(obj.Attribute1.join(','))
|| obj.Attribute2.find(obj => /tes/.test(obj.SubAttribute1))
|| obj.Attribute3.find(obj => /tes/.test(obj.SubAttribute2))
)
console.log(result).as-console-wrapper { max-height: 100% !important; top: 0; }
https://stackoverflow.com/questions/58533565
复制相似问题