Lodash:当我有嵌套数组属性时过滤?
考虑下面的例子。我用的是LodashLodash:当我有嵌套数组属性时过滤?,lodash,Lodash,考虑下面的例子。我用的是Lodash "home":[ { "data":{ "interests":["sports", "travel", "boxing"], "city":["x", "y", "z"], "name":"test1" }, "count":["1", "2"], "country":"CA" }, { "data":{ "
"home":[
{
"data":{
"interests":["sports", "travel", "boxing"],
"city":["x", "y", "z"],
"name":"test1"
},
"count":["1", "2"],
"country":"CA"
},
{
"data":{
"interests":["painting", "travel", "dancing"],
"city":["a", "y", "b"],
"name":"test2"
},
"count":["1","3"],
"country":"US"
}
]
如果我将在键值对示例上尝试该函数:
_.find(home, ['data.country', 'US']); // It is returning me the 2nd object
要求:
我想要data.interests正在“跳舞”的所有对象
尝试:
_.find(home, ['data.interests', 'dancing']) // It is returning []
我还尝试了filter()、where()和map,但无法获得完整的对象
提前感谢。您可以使用vanilla JS或lodash函数-过滤数组,并为每个项目检查
data.interests
数组是否包含请求的单词
香草的:
const home=[{“数据”:{“兴趣”:[“体育”、“旅游”、“拳击”],“城市”:[“x”、“y”、“z”],“姓名”:“测试1”},“计数”:[“1”、“2”],“国家”:“CA”},{“数据”:{“兴趣”:[“绘画”、“旅游”、“舞蹈”],“城市”:[“a”、“y”、“b”],“姓名”:“测试2”},“计数”:[“1”、“3”,“国家”:“美国”}]
const result=home.filter(o=>o.data.interests.includes('dancing'))
console.log(结果)