Javascript 将元素与另一个数组匹配的数组(具有键“id”)的筛选器对象
我有一个数组的对象,每个对象都有一个键“id”,还有另一个数组的元素实际上是第一个数组的id,所以我想从第一个数组中筛选出与第二个数组的id匹配的对象Javascript 将元素与另一个数组匹配的数组(具有键“id”)的筛选器对象,javascript,Javascript,我有一个数组的对象,每个对象都有一个键“id”,还有另一个数组的元素实际上是第一个数组的id,所以我想从第一个数组中筛选出与第二个数组的id匹配的对象 const categories = [ { id: 1, name: 'Permaculture', active: false, createdAt: '2018-06-18T11:38:41.000Z', updatedAt: "2018-06-18T11:38:41.000Z" }, { id:
const categories = [
{ id: 1,
name: 'Permaculture',
active: false,
createdAt: '2018-06-18T11:38:41.000Z',
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 2,
name: 'Food Forest',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 3,
name: 'Community Supported Farming (CSA)',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 4,
name: 'Urban Farming',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 5,
name: 'Roof Farming',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 6,
name: 'Roof Gardening',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 7,
name: 'Gardening',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 8,
name: 'Indoor Plantation',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 9,
name: 'Soil Culture',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 10,
name: 'Tropical Farming',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 11,
name: 'Greenhouse',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 12,
name: 'Hobby Farming',
active: false,
createdAt: "2018-06-18T11:38:41.000Z",
updatedAt: "2018-06-18T11:38:41.000Z" },
{ id: 13,
name: 'WWOOF',
active: false,
createdAt: "2018-06-18T11:44:56.000Z",
updatedAt: "2018-06-18T11:44:56.000Z" },
{ id: 14,
name: 'Organic Farming',
active: false,
createdAt: "2018-06-18T11:44:56.000Z",
updatedAt: "2018-06-18T11:44:56.000Z" }
];
const ids = [1, 4, 2];
const expected_res = [
{
id: 1,
name: "Permaculture"
},
{
id: 4,
name: "Urban Farming"
},
{
id: 2,
name: "Food Forest"
}
]
这将根据您的条件进行过滤,但不会保持id的顺序 常量类别=[{ id:1, 名称:'永久文化', 活动:错误, 创建日期:“2018-06-18T11:38:41.000Z”, 更新日期:2018-06-18T11:38:41.000Z }, { id:2, 名称:“食物森林”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:3, 名称:“社区支持农业CSA”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:4, 名称:“城市农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:5, 名称:“屋顶农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:6, 名称:'屋顶园艺', 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:7, 名称:"园艺",, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:8, 名称:‘室内种植园’, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:9, 名称:“土壤培养”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:10, 名称:“热带农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:11, 名称:'温室', 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:12, 名称:“爱好农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z }, { id:13, 名称:“WWOOF”, 活动:错误, 创建日期:2018-06-18T11:44:56.000Z, 更新日期:2018-06-18T11:44:56.000Z }, { 身份证号码:14, 名称:“有机农业”, 活动:错误, 创建日期:2018-06-18T11:44:56.000Z, 更新日期:2018-06-18T11:44:56.000Z } ]; 常量id=[1,4,2]; console.logcategories.filterx=>ids.includesx.id您可以使用。reduce实现这一点,因为您只需要结果中的id和名称。如果当前对象的id在id数组中,则可以将其添加到acc累加器中 const categories=[{id:1,name:Permaculture,active:!1,createdAt:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:2,name:Food Forest,active:!1,createdAt:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:3,名称:社区支持农业CSA,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:4,名称:城市农业,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:5,名称:屋顶农业,活动:!1,创建日期:2018-06-18T11:38:000Z,更新日期:2018-06-18:41.000Z},{id:6,名称:屋顶园艺,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:7,名称:园艺,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:8,名称:室内种植园,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:41.000Z},{id:9,名称:土壤培养,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:10,名称:热带农业,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:11,名称:温室,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:41.000Z},{id:12,名称:爱好农业,活动:!1,创建日期:2018-06-18T11:38:41.000Z,更新日期:2018-06-18T11:38:41.000Z},{id:13,名称:WWOOF,活动:!1,创建日期:2018-06-18T11:44:56.000Z,更新日期:2018-06-18T11:44:56.000Z},{id:14,名称:有机农业,活动:!1,创建日期:2018-06-18T11:44:56.000Z,更新日期:2018-06-18T11:56.000Z}, ids=[1,4,2], res=categories.reduceacc,{id,name}=>ids.includesid?[…acc,{id,name}]:acc,[]; console.logres;Use array.filter过滤器将检查对象id是否在id数组中。如果存在,则将其插入数组。在迭代所有元素后,它将返回数组 常量类别=[ {id:1, 名称:'永久文化', 活动:错误, 创建日期:“2018-06-18T11:38:41.000Z”, 更新日期:2018-06-18T11:38:41.000Z}, {id:2, 名称:“食物森林”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:3, 名称:“社区支持农业CSA”, 活动:错误, 创建日期:20 18-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:4, 名称:“城市农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:5, 名称:“屋顶农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:6, 名称:'屋顶园艺', 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:7, 名称:"园艺",, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:8, 名称:‘室内种植园’, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:9, 名称:“土壤培养”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:10, 名称:“热带农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:11, 名称:'温室', 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:12, 名称:“爱好农业”, 活动:错误, 创建日期:2018-06-18T11:38:41.000Z, 更新日期:2018-06-18T11:38:41.000Z}, {id:13, 名称:“WWOOF”, 活动:错误, 创建日期:2018-06-18T11:44:56.000Z, 更新日期:2018-06-18T11:44:56.000Z}, {id:14, 名称:“有机农业”, 活动:错误, 创建日期:2018-06-18T11:44:56.000Z, 更新日期:2018-06-18T11:44:56.000Z} ]; 常量id=[1,4,2]; console.logcategories.filtere=>ids.indexOfe.id=-1?e:错