JavaScript简化了循环

时间:2017-06-19 11:13:06

标签: javascript for-loop

我为Loop构建了以下内容,并想询问是否有办法简化它:

//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]);
}

5 个答案:

答案 0 :(得分:4)

我看到这里使用了jQuery,因此您可以使用$.each

$.each(data, function(i, item){

   var iteration = +i+1;
   $('#img-thumb-id' + iteration).attr('src', item);

});

如果你想使用vanilla JavaScript(根本没有jQuery)

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

或者您可以使用:

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

您不需要在问题中执行第一段代码。如果您只是从0开始执行标准for循环并且上升到object.length,那么读取代码的人就会更清楚。

答案 3 :(得分:1)

你也可以试试这个:

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

答案 4 :(得分:-1)

  

在JavaScript中使用简单的foreach循环

queryParams['colour']