模数%JS的循环

时间:2018-03-17 00:06:20

标签: javascript loops ecmascript-6 operators modulus

通过循环是否有更可读或更正确的方法来构建一个在新行之前最多包含5个元素的表。 我使用模数运算符,但我确信它具有更易读或更优化的方式。

所以我需要制作循环,并且每次"i" 可以除以5 新行。 您有更多建议或我的代码是否完美?

function refreshLibs() {
    let list = sheet_selected==="all" && $PME.libraryObj || _sortSheetType($PME.libraryObj);
    list = cat_selected==="all" && list || _sortCategory(list);

    for (let [i,len,x,y,m,l] = [0,list.length,0,0,50,1]; i < len; i++) { // m:marge l:line
        const cage = list[i];
        [cage.x,cage.y] = [x,y];
        if( !((i+1)%6) ){ [x,y,l] = [0,y+cage.height+20,++l] } // this can be optimize ???
        else{x+=cage.width+m;};
        cage_library.addChild(cage);
    };
};

1 个答案:

答案 0 :(得分:0)

哇,只是找到一个数学实验,只需给我跳跃循环线的魔术代码!

    for (let i=x=y=l= 0, len = list.length; i < len; i++) {
        const cage = new PIXI.Container();
        const cage_Bg = drawRec(0, 0, 170, 122);
        cage_Bg.x = x+150, cage_Bg.y = y;
        cage.addChild(cage_Bg);
        Cage_Libs.addChild(cage);
        x+=cage_Bg.width+marX;

        if(!(~i%~4)){ // MAGICCCCCS JUMP EACH 4*(I) and loop and loop allow start at 0
         x=0,y+=marX;
        }
    };