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("已经没有更多图片可以展示啦"); } }
关键说明
- 索引初始化:一定要给
i和j赋初始值0,这样它们才能作为有效的数组索引使用。 - 使用
push()方法:这是数组添加元素的标准方式,它会自动处理索引,避免手动维护索引带来的错误。 - 边界判断:在
getimg()里加判断可以防止用户重复点击导致j超过数组长度,避免出现undefined的情况。
内容的提问来源于stack exchange,提问作者greg
相关产品推荐
相关产品推荐

