Javascript Lodash筛选器数组并获取父索引
我的Api以json格式返回这个Javascript Lodash筛选器数组并获取父索引,javascript,reactjs,react-native,lodash,Javascript,Reactjs,React Native,Lodash,我的Api以json格式返回这个 [ { "title":"Category One", "data":[ { "id":"5", "code":"0001", "name":"Item Name" }, { "id":"6", "code":"0002", "name"
[
{
"title":"Category One",
"data":[
{
"id":"5",
"code":"0001",
"name":"Item Name"
},
{
"id":"6",
"code":"0002",
"name":"Item Name 2"
}
]
},
{
"title":"Category Two",
"data":[
{
"id":"7",
"code":"0003",
"name":"Item Name 3"
},
{
"id":"8",
"code":"0004",
"name":"Item Name 4"
}
]
}
]
我想按id筛选上面给定的数组
我试着这样做:
_.filter(data, ["title.data.id", "5"]);
_.filter(data, { data: [{ id: "5" }] });
但返回空数组,然后我也尝试如下操作:
_.filter(data, ["title.data.id", "5"]);
_.filter(data, { data: [{ id: "5" }] });
但返回完整数组
请指导我这里缺少什么。这是一个简单的JS解决方案 常数数据=[ { 标题:第一类, 数据:[ { id:5, 代码:0001, 名称:项目名称 }, { id:6, 代码:0002,, 名称:项目名称2 } ] }, { 标题:第二类, 数据:[ { id:7, 代码:0003,, 名称:项目名称3 }, { id:8, 代码:0004,, 名称:项目名称4 } ] } ]; const requuried=data.finditem=>item.data.findd=>d.id=='5';
console.LogRequired 这是一个简单的JS解决方案 常数数据=[ { 标题:第一类, 数据:[ { id:5, 代码:0001, 名称:项目名称 }, { id:6, 代码:0002,, 名称:项目名称2 } ] }, { 标题:第二类, 数据:[ { id:7, 代码:0003,, 名称:项目名称3 }, { id:8, 代码:0004,, 名称:项目名称4 } ] } ]; const requuried=data.finditem=>item.data.findd=>d.id=='5';
console.LogRequired 您需要获取所需的属性并迭代内部数组 var data=[{title:Category One,data:[{id:5,code:0001,name:Item name},{id:6,code:0002,name:Item name 2}]},{title:Category 2,data:[{id:7,code:0003,name:Item name 3},{id:8,code:0004,name:Item name:4}]}, result=..filterdata,{data}=>..somedata,{id}=>id==5; console.logresult; .作为控制台包装{最大高度:100%!重要;顶部:0;}
您需要获取所需的属性并迭代内部数组 var data=[{title:Category One,data:[{id:5,code:0001,name:Item name},{id:6,code:0002,name:Item name 2}]},{title:Category 2,data:[{id:7,code:0003,name:Item name 3},{id:8,code:0004,name:Item name:4}]}, result=..filterdata,{data}=>..somedata,{id}=>id==5; console.logresult; .作为控制台包装{最大高度:100%!重要;顶部:0;} 设obj=[ { 标题:第一类, 数据:[ { id:5, 代码:0001, 名称:项目名称 }, { id:6, 代码:0002,, 名称:项目名称2 } ] }, { 标题:第二类, 数据:[ { id:7, 代码:0003,, 名称:项目名称3 }, { id:8, 代码:0004,, 名称:项目名称4 } ] } ] 函数getFilterResultfilterValue{ 让结果={} 对于let i=0;i
console.logfinalResult您可以使用reduce和filter执行此操作 常数数据=[ { 标题:"第一类",, 数据:[ { id:'5', 代码:“0001”, 名称:'项目名称', }, { id:'6', 代码:“0002”, 名称:“项目名称2”, }, ], }, { 标题:"第二类",, 数据:[ { id:'7', 代码:“0003”, 名称:“项目名称3”, }, { id:'8', 代码:“0004”, 名称:“项目名称4”, }, ], }, ]; data.reduceac,curr=>{ const val=curr.data.filterd=>d.id=='5'; 如果val.length acc=[…acc,…val]; 返回acc;
}, []; 您可以使用reduce和filter来执行此操作 常数数据=[ { 标题:"第一类",, 数据:[ { id:'5', 代码:“0001”, 名称:'项目名称', }, { id:'6', 代码:“0002”, 名称:“项目名称2”, }, ], }, { 标题:"第二类",, 数据:[ { id:'7', 代码:“0003”, 名称:“项目名称3”, }, { id:'8', 代码:“0004”, 名称:“项目名称4”, }, ], }, ]; data.reduceac,curr=>{ const val=curr.data.filterd=>d.id=='5'; 如果val.length acc=[…acc,…val]; 返回acc;
}, [];不工作,从类别1数据集中返回两个数组。不工作,从类别1数据集中返回两个数组。不工作。它返回完整的数组请检查现在我已经编辑了我的答案@DigitalJeddy谢谢它可以工作,但是你也可以用lodash来做吗?我可以在找到索引后更改名称吗,使用上述方法?我已更新了我的解决方案,第一个解决方案将更新密钥,只发送匹配id对象,第二个使用lodash将返回更新名称为field@digitaljeditnot Working的完整对象。它返回完整的数组请检查现在我已经编辑了我的答案@DigitalJeddy谢谢它可以工作,但是你也可以用lodash来做吗?我可以在找到索引后更改名称吗,使用上述方法?我已经更新了我的解决方案,第一个解决方案将更新密钥,只发送匹配id对象,第二个使用lodash将返回更新名称为field@DIGITALJEDI的完整对象