如何从JSON对象提取唯一艺术家名称至独立列表?JS新手求助
提取唯一艺术家名称的实现方法
下面给你两种适合新手的实现方式,能轻松从给定的对象里提取出唯一的艺术家名称,最终得到你想要的Nirvana, Pearl Jam格式:
方法一:利用ES6的Set自动去重(简洁高效)
这种方法用现代JS特性,代码短且易读:
// 第一步:提取所有专辑的艺术家名称,得到带重复值的数组 const allArtists = artist_list.albums.map(album => album.artist); // 第二步:用Set去重,再转回数组 const uniqueArtists = [...new Set(allArtists)]; // 第三步:把数组转成逗号分隔的字符串 const result = uniqueArtists.join(', '); console.log(result); // 输出:Nirvana, Pearl Jam
map:遍历albums数组,逐个取出每个专辑的artist字段,生成新数组Set:JS的集合类型,自动过滤重复元素,把带重复的数组转成Set后就只剩唯一值...扩展运算符:把Set转回普通数组,方便后续处理join(', '):把数组元素用逗号加空格连接成字符串
方法二:手动遍历判断(适合理解基础逻辑)
如果想搞清楚底层逻辑,可以用这种手动循环的方式:
// 创建空数组,用来存唯一的艺术家名称 const uniqueArtists = []; // 遍历所有专辑 for (let i = 0; i < artist_list.albums.length; i++) { const currentArtist = artist_list.albums[i].artist; // 判断当前艺术家是否已经在数组里,不在就添加进去 if (!uniqueArtists.includes(currentArtist)) { uniqueArtists.push(currentArtist); } } // 转成逗号分隔的字符串 const result = uniqueArtists.join(', '); console.log(result); // 输出:Nirvana, Pearl Jam
for循环:逐个遍历albums里的每个专辑对象includes:检查当前艺术家名称是否已经在uniqueArtists数组中,避免重复添加push:把不重复的艺术家名称添加到数组里
内容的提问来源于stack exchange,提问作者gis
相关产品推荐
相关产品推荐

