JavaScript简化for循环
我构建了以下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
//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);
});