2016-11-12 62 views
0

我看到一個循環的輸出,其結果爲:0,1,10,11,12,2,3 ,4,5等帶有輸出的JavaScript循環:0,1,10,11,12,2,3,4,5

我知道上面的循環是錯誤的和不尋常的,也許你問這個循環的用法是什麼,但我想知道我該如何實現這一點。

感謝

+0

如果列表/數組的元素是整數,那麼它的無序。如果他們是字符串,那麼它是正確的。 –

+0

你是否要求JS代碼設計一個循環來打印這些數字? –

+1

什麼循環?你所顯示的只是一些數字而沒有代碼。這不是代碼寫作或家庭作業服務。請通讀[問] – charlietfl

回答

4

你可以使用數字和其排序爲Array#sort與構建字符串沒有回調。此方法使用按字符串排序。

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; 
 

 
array.sort(); 
 
console.log(array);

或者你可以建立一個樹,並與深度number財產優先第一alogrithm閱讀。

var i, 
 
    tree = {}; 
 

 
for (i = 0; i < 13; i++) { 
 
    i.toString().split('').reduce(function (r, c, i, cc) { 
 
     r[c] = r[c] || {}; 
 
     if (i + 1 === cc.length) { 
 
      r[c].number = true; 
 
     } 
 
     return r[c]; 
 
    }, tree); 
 
} 
 

 
Object.keys(tree).forEach(function iter(object, value) { 
 
    object.number && console.log(value); 
 
    return function(k) { 
 
     k === 'number' || Object.keys(object[k]).forEach(iter(object[k], value + k)); 
 
    }; 
 
}(tree, '')); 
 

 
console.log(tree);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

謝謝,可能是另一種方式? –

+0

@MasoudGhorbani,請參閱編輯。 –