Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript简化for循环_Javascript_For Loop - Fatal编程技术网

JavaScript简化for循环

JavaScript简化for循环,javascript,for-loop,Javascript,For Loop,我构建了以下for循环,并想问是否有一种方法可以简化它: //data contains an array var i = 0; if(data.length >= 1) { i = 1; } for (i; i <= data.length; i++) { $('#img-thumb-id' + i).attr('src', data[i-1]); } 我看到这里使用了jQuery,所以每个都可以使用$ 如果您想使用香草JavaScript,根本不需要jQuery

我构建了以下for循环,并想问是否有一种方法可以简化它:

//data contains an array
var i = 0;
if(data.length >= 1) {
    i = 1;
}
for (i; i <= data.length; i++) {
    $('#img-thumb-id' + i).attr('src', data[i-1]);
}

我看到这里使用了jQuery,所以每个都可以使用$

如果您想使用香草JavaScript,根本不需要jQuery

for (var i; i < data.length; i++) {
   var iteration = +i+1;
   document.getElementById('img-thumb-id'+iteration).src = data[i];
}

我看到这里使用了jQuery,所以每个都可以使用$

如果您想使用香草JavaScript,根本不需要jQuery

for (var i; i < data.length; i++) {
   var iteration = +i+1;
   document.getElementById('img-thumb-id'+iteration).src = data[i];
}
在JavaScript中使用简单的foreach循环

在JavaScript中使用简单的foreach循环


循环很好,但我不明白你为什么不这样做:

if(data !== null){
    for (var i = 0; i < data.length; i++) {
                $('#img-thumb-id' + (i + 1)).attr('src', data[i]);
            }
}

您不需要执行问题中的第一段代码。阅读代码的人更清楚的是,如果你只是从0开始,一直到object.length执行一个标准循环。

循环很好,但我不明白你为什么不这样做:

if(data !== null){
    for (var i = 0; i < data.length; i++) {
                $('#img-thumb-id' + (i + 1)).attr('src', data[i]);
            }
}

您不需要执行问题中的第一段代码。如果您只执行从0到object.length的标准循环,阅读代码的人会更清楚。

您也可以尝试以下方法:

data.forEach(function(item, index){
   $('#img-thumb-id' + (index+1)).attr('src', item);
});

您也可以尝试以下方法:

data.forEach(function(item, index){
   $('#img-thumb-id' + (index+1)).attr('src', item);
});


每个可以使用$。并且总是从零开始循环索引。我是否正确理解,如果data.length==0,您希望它显示一次?在这种情况下,它似乎不起作用。@Adder我想这也是为了检查数据是否为空。每个都可以使用$。并且总是从零开始循环索引。我是否正确理解,如果data.length==0,您希望它显示一次?在这种情况下,它似乎不起作用。@Adder我想这也是为了检查数据是否为空。如果你想提供一个普通的解决方案,我建议你用document.getElementById'img-thumb-id'+迭代替换$'img-thumb-id'+迭代。我知道OP使用的是jQuery选择器,但对于未来的访问者来说,这可能会产生误导或错误令人困惑,因为他们只期望香草。如果你想提供一个香草解决方案,我建议你用document替换$'img-thumb-id'+迭代。getElementById'img-thumb-id'+迭代我知道OP使用的是jQuery选择器,但对于未来的访问者来说,这可能会误导或混淆,因为他们只期望香草。迭代是未定义的。谢谢,索引是未定义的used@downvoter请删除你的否决票,星期二的答案现在是有效的,未定义的。谢谢,索引是未定义的used@downvoter请删除您的否决票,星期二的答案现在是有效的数据和数据。长度等于您的condition@Jonasw请检查这个例子,数据类型不等于@Jonasw==未定义和数据和数据。数据的长度和类型==undefined&&data&&data.length>0性能更好。@Jonasw是的,它性能更好检查小提琴,不定义数据并检查输出,对空数据执行相同操作,,[],{}您将看到一些差异,总而言之,这是一种更安全的数据类型==未定义&&data&&data.length我想如果你真的有时间检查小提琴,你会同意的。致以最良好的祝愿。@Jonasw另外,如果您想模拟PHP的空函数,您会怎么想?如果data&&data.length等于您的condition@Jonasw请检查此示例,它不等于@Jonasw iftypeof data==未定义和数据和数据。数据的长度和类型==undefined&&data&&data.length>0性能更好。@Jonasw是的,它性能更好检查小提琴,不定义数据并检查输出,对空数据执行相同操作,,[],{}您将看到一些差异,总而言之,这是一种更安全的数据类型==未定义&&data&&data.length我想如果你真的有时间检查小提琴,你会同意的。致以最良好的祝愿。@Jonasw另外,如果你想模仿PHP的空函数,你会怎么想?小心“img thumb id”+index+1…不会产生你期望的结果谢谢@charlietfl将index+1放在括号内小心“img thumb id”+index+1…不会产生你期望的结果谢谢@charlietfl将索引+1放在括号内
data.forEach(function(item, index){
   $('#img-thumb-id' + (index+1)).attr('src', item);
});