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
相关产品推荐
相关产品推荐

