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

如何修改对象列表中各元素的字符串片段?IGDB API图片URL修改问题

解决IGDB API封面URL替换无效的问题

核心原因是:JavaScript中的字符串属于不可变类型,replace()方法不会修改原字符串本身,而是返回一个完成替换的新字符串——你之前的代码只调用了replace()但没把结果存回去,所以看不到任何变化。

方案1:直接修改原collections数据

如果需要更新collections数组里每个元素的封面URL,把replace()的结果重新赋值给原属性即可:

.then(response => {
    const collections = response.data;
        
    collections.forEach(collection => {
      // 将替换后的新URL赋值回原属性
      collection.cover.url = collection.cover.url.replace('t_thumb', 't_1080p');
    });
    // 后续可直接使用更新后的collections
})

方案2:收集替换后的URL到新数组(修复你注释的代码)

如果想保留原URL,只把高清URL存入新数组,需要将replace()的结果赋值给变量后再push:

.then(response => {
    const collections = response.data;
    const images = [];
        
    collections.forEach(collection => {
      let imageURL = collection.cover.url;
      // 把替换后的结果重新赋值给变量
      imageURL = imageURL.replace('t_thumb', 't_1080p');
      images.push(imageURL);
    });
    // 此时images数组中全是高清封面URL
})

额外容错提示

如果存在部分游戏没有cover属性的情况,可添加判断避免报错:

collections.forEach(collection => {
  // 可选链操作符确保属性存在时才执行替换
  if (collection?.cover?.url) {
    collection.cover.url = collection.cover.url.replace('t_thumb', 't_1080p');
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:57:01