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

JavaScript数组无法存储图片src值,存在undefined问题的技术求助

问题分析与解决方案

嘿,我来帮你搞定这个问题~你的代码主要是变量未初始化和数组操作不规范导致的问题,下面一步步拆解:

核心问题点

  • 索引变量未初始化:你声明了var i; var j;但没有给初始值,这两个变量默认是undefined。当你执行image[i] = img.src时,相当于把值存在了image[undefined](这其实是给数组加了个属性,而非正常的数组元素),自然拿不到预期结果,还会产生undefined的数组项。
  • 数组元素添加方式不够稳妥:手动维护索引i容易出错,不如用数组原生方法更可靠。

修正后的代码

// 初始化数组和索引变量,给i、j设置初始值0
var image = []; 
var i = 0; 
var j = 0; 

function sendimg(img){ 
    alert(img.src); 
    // 推荐用push()自动添加到数组末尾,无需手动管理索引
    image.push(img.src); 
    // 如果坚持用手动索引,确保i初始为0,这样赋值和自增就正常了
    // image[i] = img.src;
    // i++;
} 

function getimg(){ 
    // 增加边界判断,避免j超出数组长度时取到undefined
    if(j < image.length){
        document.getElementById("usershero").src = image[j]; 
        j++; 
    } else {
        alert("已经没有更多图片可以展示啦");
    }
}

关键说明

  1. 索引初始化:一定要给i和j赋初始值0,这样它们才能作为有效的数组索引使用。
  2. 使用push()方法:这是数组添加元素的标准方式,它会自动处理索引,避免手动维护索引带来的错误。
  3. 边界判断:在getimg()里加判断可以防止用户重复点击导致j超过数组长度,避免出现undefined的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:49:48