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

如何通过给定ID获取对象数组中的姓名(仅用指定数组方法)

根据ID从对象数组中获取对应姓名(无循环,仅用指定数组方法)

你提供的代码存在逻辑错误:每个people对象的id是数组类型,直接用===和单个ID值对比永远不会匹配,因为数组与数字的类型和值都不相等。以下是符合要求的修正实现:

方式一:获取第一个匹配的姓名(高效)

使用find()方法找到第一个包含目标ID的对象,再提取姓名:

var people = [
    {name: 'John', id: [34, 44, 77]},
    {name: 'Jose', id: [43, 54, 65]},
    {name: 'Hanna', id: [56, 34, 98]}
];

var targetName = people.find(person => person.id.includes(56))?.name;
console.log(targetName); // 输出:Hanna
  • find()是允许使用的数组方法,会自动遍历数组并返回第一个满足条件的元素
  • person.id.includes(56)用于判断当前对象的ID数组中是否包含目标ID
  • 可选链?.处理无匹配对象的情况,避免报错

方式二:获取所有匹配的姓名

如果存在多个对象包含目标ID,用filter()配合map()提取所有匹配的姓名:

var people = [
    {name: 'John', id: [34, 44, 77]},
    {name: 'Jose', id: [43, 54, 65]},
    {name: 'Hanna', id: [56, 34, 98]},
    {name: 'Lily', id: [56, 78]}
];

var targetNames = people
    .filter(person => person.id.includes(56))
    .map(person => person.name);
console.log(targetNames); // 输出:["Hanna", "Lily"]
  • filter()筛选出所有包含目标ID的对象
  • map()将筛选后的对象转换为姓名数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:57:43