JavaScript根据键值数组从列表中删除对象

JavaScript根据键值数组从列表中删除对象,javascript,arrays,key-value,Javascript,Arrays,Key Value,我试图通过传入一个键数组,根据对象的键从数组中移除对象 例如,我有一个名为“客户机”的对象数组: 然后我有另一个数组,其中的键名为“ids”: 过滤后,我应该只剩下: [ { id: 2, name: Bob }, ] 到目前为止,我已经尝试过这个,但它返回了所有内容: filteredClients = clients.filter(n.id => !ids.includes(n.id) 在回调中使用n,而不是n.id。在这种情况下,n将在每次迭代中获取客户机数组的每个对象的值。

我试图通过传入一个键数组,根据对象的键从数组中移除对象

例如,我有一个名为“客户机”的对象数组:

然后我有另一个数组,其中的键名为“ids”:

过滤后,我应该只剩下:

[
  { id: 2, name: Bob },
]
到目前为止,我已经尝试过这个,但它返回了所有内容:

filteredClients = clients.filter(n.id => !ids.includes(n.id)

在回调中使用
n
,而不是
n.id
。在这种情况下,
n
将在每次迭代中获取
客户机
数组的每个对象的值。更多信息

const客户端=[
{id:1,名字:“Tim”},
{id:2,名字:“Bob”},
{id:3,名字:“乔”}
];
常量id=[1,3];
var filteredClients=clients.filter(n=>!ids.includes(n.id));
console.log(filteredClients)
让arr=[
{id:1,名称:'Tim'},
{id:2,名称:'Bob'},
{id:3,姓名:'Joe'},
]
设con=[1,3]
让updatedArr=arr.find((x)=>!con.includes(x.id));
console.log(updatedArr)初始代码行:

filteredClients = clients.filter(n.id => !ids.includes(n.id)
更新的代码行应为:

filteredClients = clients.filter(n => !ids.includes(n.id))
这里不使用n.id,而是在lambda函数中使用n进行回调。在ES6中,在给定客户机数组的每次迭代中,每个对象的值由n获取


有关更多信息,请参见

。但是您只需要在lambda中传递
n
filteredClients=clients.filter(n=>!ids.includes(n.id)
filteredClients = clients.filter(n.id => !ids.includes(n.id)
filteredClients = clients.filter(n => !ids.includes(n.id))