达夫设备循环写法,主要是针对大循环而生,循环次数越大性能差异便越明显。
该写法最早应该是出现在C当中,某大神将该写法实现在JS中。
一般情况下,建议不要使用这种写法,相对复杂,低循环次数和while()、for()差别不大。
function delFilesWhenReviewCommentDel (data){
var len = data.length -1 ;
var a_len = (len +1 ) % 8 ; //取余
var b_len = Math .floor (len / 8 ); //取整
//循环主体的余数循环
while (a_len ){
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
a_len --;
}
//余数除外的整体循环(对,你没有看错,执行函数写了8次)
while (b_len ){
b_len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
if (data[len ].fileId !=null ){
delById (data[len ].fileId );
}
len --;
}
}
主体循环部分,因为我需要判断情况,if()内部不是每次都进。所以len--要写在外面,
若果只是单纯的执行函数,可一直执行的[len--]这样写。