这是每次显示3个数组元素的正确方法吗?

时间:2015-01-08 08:39:49

标签: javascript arrays product

这是每次显示3个数组元素的正确方法吗?请参阅下面的演示

注意:更改数组项目可以添加或删除数组值,甚至可以更改itemsperow = 4以查看更改

的javascript

 var index=0;
    var arr=['a','b','c','d','e','f','g','h','i',10];
     var tot =arr.length;
     var itemsperow=3;
      var loop=Math.round(tot/itemsperow);
      //checking if remainder exist 
      if(tot%itemsperow!=0){
        loop=loop+1;
      }

     for(i=1;i<=loop;i++)
        {
            console.log("<div>");
            for(j=1;j<=itemsperow;++j){
                if(index==tot){
                    break;
                }
              console.log('<span>'+arr[index]+'</span>');

              ++index;
              }

            console.log("</div>");

            if(index==tot){
                    break;
                }
        }

DEMO:http://jsfiddle.net/nadeemmnn2007/87rxL785/

2 个答案:

答案 0 :(得分:1)

使用模数来检测何时输出每3项:

for (var i = 0; i < arr.length; i++) {
    if ((i % itemsperrow) == 0) {
        if (i != 0) { // Close last DIV
            console.log('</div>');
        }
        console.log('<div>');
    }
    console.log(arr[i]);
}
if (i > 0) {
    console.log('</div>');
}

答案 1 :(得分:0)

这就是你想要做的事情

var arr=['a','b','c','d','e','f','g','h','i',10];
        for(i=0;i<arr.length;){
          console.log('<div>');
          for(j=0;i<arr.length && j<3;++i,++j){
            console.log('<p>'+arr[i]+'</p>');
          }
          console.log('</div>');
        }