You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用include()筛选数组中符合指定ID的元素并提取名称?

使用include()实现数组筛选与名称提取

要实现需求,你可以结合filter()、include()和map()方法,再根据预期结果调整顺序,具体代码如下:

const allowedIds = [1, 3]

const allBoats = [{
  id: 1,
  name: 'titanic'
}, {
  id: 2,
  name: 'anna'
}, {
  id: 3,
  name: 'boaty McBoatface'
}]

// 筛选符合id要求的船只,提取名称并调整顺序
const result = allBoats
  .filter(boat => allowedIds.includes(boat.id)) // 用include()判断id是否在允许列表中
  .map(boat => boat.name) // 提取name属性
  .reverse(); // 反转数组匹配预期顺序

console.log(result); // 输出: ['boaty McBoatface', 'titanic']

步骤说明

  1. 筛选符合条件的船只:使用filter()遍历allBoats,通过allowedIds.includes(boat.id)检查当前船只的id是否在允许的id列表中,保留符合条件的对象。
  2. 提取名称属性:用map()将筛选后的对象数组转换为仅包含name属性的字符串数组。
  3. 调整顺序:由于原数组中id为1的船只排在id为3的前面,而预期结果顺序相反,因此调用reverse()反转数组得到目标结果。

如果希望直接按照allowedIds的逆序输出(不依赖原数组顺序),也可以用排序替代反转:

const result = allBoats
  .filter(boat => allowedIds.includes(boat.id))
  .sort((a, b) => allowedIds.indexOf(b.id) - allowedIds.indexOf(a.id))
  .map(boat => boat.name);

内容的提问来源于stack exchange,提问作者user12475368

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:45:35