javascript中按值过滤对象数组
我试图根据下面给出的数组值过滤对象。我知道如何通过键过滤对象,但在这种情况下,我需要通过值过滤对象 这是我的代码:javascript中按值过滤对象数组,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我试图根据下面给出的数组值过滤对象。我知道如何通过键过滤对象,但在这种情况下,我需要通过值过滤对象 这是我的代码: let _ = [{ "form_id": "659d796d-aa78-4e74-af68-5ef037bb215b", "form_name": "Investigation Forms", "form_type": null,
let _ = [{
"form_id": "659d796d-aa78-4e74-af68-5ef037bb215b",
"form_name": "Investigation Forms",
"form_type": null,
"created_at": "",
"updated_at": ""
},
{
"form_id": "9991f556-fc7f-4400-a491-062b12a0bb03",
"form_name": "Other Investigation Forms",
"form_type": {
"form_type_name": "Assessment",
"form_type_id": "5f4419c1-9351-4338-b894-84a000328cc4"
},
"created_at": "",
"updated_at": ""
},
{
"form_id": "9991f556-fc7f-4400-a491-062b12a0bb03",
"form_name": "Other/General Investigation Forms",
"form_type": {
"form_type_name": "Report",
"form_type_id": "594ba131-b110-4ec5-855a-9de8440fbc7b"
},
"created_at": "",
"updated_at": ""
}
]
//-------------------------------------------------------------------------------------------------
const values = [0, "5f4419c1-9351-4338-b894-84a000328cc4", "594ba131-b110-4ec5-855a-9de8440fbc7b"]
plz ignore my below code it is work attempt .
const output = _.map(item =>
values.reduce((val, key) => ({
...val,
[key]: item[key]
}), {})
);
console.log(output);
表单类型有表单类型id,这是我需要筛选的值。如果我正确理解了您的问题,那么您需要
\uu.filter((项)=>值。包括(项.表单类型?.表单类型id));
或者如果可选链接不可用(正如Obed Marquez Parlapiano正确指出的那样)
\uu.filter((item)=>values.includes(item.form\u type&&item.form\u type.form\u id));
请参见要基于
表单类型的值进行过滤的测试。表单类型id
?@code是的,兄弟,我需要that@code是的,我需要这样做。你想用什么作为过滤逻辑?如果表单类型\u id
存在,或者它有一个特定的值?这是否回答了您的问题?请注意,您可能无法访问可选链接?。
。在这种情况下,只需使用item.form\u type&&item.form\u type.form\u type\u id
not working.brohelpppp仍然not workingArray.contains实际上不推荐您在浏览器中可能不可用。我已经更新了答案,包括了Obed的评论,我在下面添加了代码
my expected output :
const values = ["5f4419c1-9351-4338-b894-84a000328cc4"]
output = [{
"form_id": "9991f556-fc7f-4400-a491-062b12a0bb03",
"form_name": "Other Investigation Forms",
"form_type": {
"form_type_name": "Assessment",
"form_type_id": "5f4419c1-9351-4338-b894-84a000328cc4"
},
"created_at": "",
"updated_at": ""
}]