gpt4 book ai didi

javascript - 将数组值作为函数参数传递

转载 作者:行者123 更新时间:2023-11-28 20:09:37 25 4
gpt4 key购买 nike

嗨,我正在尝试为图像编写代码,以便根据数组中存储的内容每秒更改一次。这是我到目前为止所拥有的:

function parse_input(){
//initializes the input_text and the text_array variables
var input_text=document.getElementById('input_text').value;
var text_array=[];
//loops through input_text and if it is an alphanumeric character...pushes it to the text_array
for(var letter in input_text){
const LETTER_REGEX=/^[a-zA-Z0-9]+$/;

if(LETTER_REGEX.test(input_text[letter])){
text_array.push(input_text[letter]);
}
}
//function to change the image
function change_image(array){
document.getElementById('letter_image').src="images/"+array+".png";
document.getElementById('letter_image').alt=array;
}
//supposed to loop through the text_array and change the image every second.
for(var i=0;i<text_array.length;i++){
setTimeout(function(){change_image(text_array[i])},1000*i);
}
}


window.onload=function(){
document.getElementById('finger_spell_it').onclick=function(){
parse_input();
}
}

当我去运行测试时,我得到一个 undefined variable 。我不知道我做错了什么,请帮忙。

最佳答案

当您的 setTimeout 运行时,i 已经处于 undefined index 处。

您需要为其创建一个范围:

// ...

for(var i=0;i<text_array.length;i++){
(function(index){
setTimeout(function(){
change_image(text_array[index])
}, 1000 * index);
})(i);
}

// ...

关于javascript - 将数组值作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com