JavaScript 根据键值数组从列表中删除对象
JavaScript removes objects from list based on an array of key values
我试图通过传入一个键数组来根据对象的键从数组中删除对象。
例如,我有一个名为 "clients" 的对象数组:
[
{ id: 1, name: Tim },
{ id: 2, name: Bob },
{ id: 3, name: Joe },
]
然后我有另一个数组,其中的键名为 "ids":
[1,3]
过滤后,我应该只剩下:
[
{ id: 2, name: Bob },
]
到目前为止,我已经试过了,但它 returns 一切:
filteredClients = clients.filter(n.id => !ids.includes(n.id)
在回调中使用 n
而不是 n.id
。在这种情况下,n
将在每次迭代中获取 clients
数组中每个对象的值。更多信息 here.
const clients = [
{id:1,name:"Tim"},
{id:2,name:"Bob"},
{id:3,name:"Joe"}
];
const ids = [1, 3];
var filteredClients = clients.filter(n => !ids.includes(n.id));
console.log(filteredClients);
let arr = [
{id:1,name:'Tim'},
{id:2,name:'Bob'},
{id:3,name:'Joe'},
]
let con = [1,3]
let updatedArr = arr.find((x)=> !con.includes(x.id));
console.log(updatedArr);
我们可以使用 .find 和数组的 includes 函数来过滤掉数组中不需要的对象
初始代码行:
filteredClients = clients.filter(n.id => !ids.includes(n.id)
更新后的代码行应该是:
filteredClients = clients.filter(n => !ids.includes(n.id))
此处不使用 n.id,而是在您的 lambda 函数中使用 n 进行回调。在 ES6 中,每个对象的值在给定客户端数组的每次迭代中都由 n 获取
更多信息
我试图通过传入一个键数组来根据对象的键从数组中删除对象。
例如,我有一个名为 "clients" 的对象数组:
[
{ id: 1, name: Tim },
{ id: 2, name: Bob },
{ id: 3, name: Joe },
]
然后我有另一个数组,其中的键名为 "ids":
[1,3]
过滤后,我应该只剩下:
[
{ id: 2, name: Bob },
]
到目前为止,我已经试过了,但它 returns 一切:
filteredClients = clients.filter(n.id => !ids.includes(n.id)
在回调中使用 n
而不是 n.id
。在这种情况下,n
将在每次迭代中获取 clients
数组中每个对象的值。更多信息 here.
const clients = [
{id:1,name:"Tim"},
{id:2,name:"Bob"},
{id:3,name:"Joe"}
];
const ids = [1, 3];
var filteredClients = clients.filter(n => !ids.includes(n.id));
console.log(filteredClients);
let arr = [
{id:1,name:'Tim'},
{id:2,name:'Bob'},
{id:3,name:'Joe'},
]
let con = [1,3]
let updatedArr = arr.find((x)=> !con.includes(x.id));
console.log(updatedArr);
我们可以使用 .find 和数组的 includes 函数来过滤掉数组中不需要的对象
初始代码行:
filteredClients = clients.filter(n.id => !ids.includes(n.id)
更新后的代码行应该是:
filteredClients = clients.filter(n => !ids.includes(n.id))
此处不使用 n.id,而是在您的 lambda 函数中使用 n 进行回调。在 ES6 中,每个对象的值在给定客户端数组的每次迭代中都由 n 获取
更多信息