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

JavaScript新手求助:将对象中好友ID替换为对应姓名输出

把好友ID替换为对应姓名的实现方法

嘿,作为JS新手遇到这个问题很正常,我来一步步教你怎么实现!核心思路就是先建立ID到姓名的快速映射,然后把每个对象里的好友ID数组转换成对应的姓名数组。

步骤1:先明确你的数据结构(模拟示例)

假设你的Osoba数组大概是这样的(如果实际结构不同,只需要调整属性名就行):

const osobe = [
  { id: 1, ime: "Stefan", prijatelji: [2, 3] },
  { id: 2, ime: "Ana", prijatelji: [1, 4] },
  { id: 3, ime: "Marko", prijatelji: [1] },
  { id: 4, ime: "Ivana", prijatelji: [2] }
];

步骤2:创建ID到姓名的映射表

用reduce方法把数组转换成以ID为键、姓名为值的对象,这样查找姓名的速度会非常快:

// 生成{ 1: "Stefan", 2: "Ana", ... }这样的映射
const idToIme = osobe.reduce((map, osoba) => {
  map[osoba.id] = osoba.ime;
  return map;
}, {});

步骤3:转换每个对象的好友ID数组

用map方法遍历原数组,对每个Osoba对象,保留原属性的同时,把prijatelji数组里的ID替换成对应的姓名:

const osobeSaPrijateljimaImena = osobe.map(osoba => ({
  ...osoba, // 复制原对象的所有属性(比如id、ime)
  // 把每个好友ID替换成对应的姓名,同时处理无效ID
  prijatelji: osoba.prijatelji.map(id => idToIme[id] || "未知用户")
}));

// 现在输出这个新数组就能看到带姓名的好友列表啦
console.log(osobeSaPrijateljimaImena);

额外提示:处理不存在的ID

如果你的好友ID里可能有不存在的用户,上面代码里的|| "未知用户"会把无效ID替换成“未知用户”,避免输出undefined,非常实用!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:26:33