JS-约瑟夫环 2

之前的版本 JS-约瑟夫环 方法留了一个bug,所以具体是什么bug呢?

在循环到最后一轮时,如果for循环里面的count数值小于while循环里面的条件数字,就会产生意料外的多次out事件,所以需要在for循环时给与限制条件,具体就不表了。修整成JS方法如下:

function joseph(total,member,number){
    var arr = [];
    for(var i=1;i<=total;i++){ 
       arr.push(i); 
    } 
    var count = 0; 
    var out; 
    while(arr.length>member){
         out = 0;
        //遍历
        for(var s=0,len=arr.length;s<len;s++){ 
            count++; 
            if(count == number && arr.length > member){
                count = 0;
                arr.splice(s-out,1);
                out ++;
            }
        }
    }
    return arr;
}