2016-11-12 4 views
0

habe ich eine Ausgabe einer Schleife, die das Ergebnis: 0, 1, 10, 11, 12, 2, 3 , 4, 5 usw.JavaScript Schleife mit output: 0, 1, 10, 11, 12, 2, 3, 4, 5

weiß, dass ich die obige Schleife falsch ist und ungewöhnlich und vielleicht fragen Sie, was die Verwendung dieser Schleife ist, aber ich möchte wissen, wie ich das umsetzen kann.

Dank

+0

Wenn die Elemente der Liste/Array ganze Zahlen sind, heraus, es ist dann in Ordnung. Wenn sie Zeichenfolgen sind, dann ist es korrekt. –

+0

Fragen Sie nach dem JS-Code, um eine Schleife zu entwerfen, um diese Zahlen zu drucken? –

+1

Welche Schleife? Alles, was Sie gezeigt haben, sind einige Zahlen und kein Code. Dies ist kein Code-Schreiben oder Hausaufgaben-Service. Bitte lesen Sie [fragen] – charlietfl

Antwort

4

könnten Sie Zahlen verwenden und es als Strings mit eingebautem Array#sort ohne Rückruf sortieren. Diese Methode verwendet die Sortierung nach Zeichenfolge.

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

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

Oder Sie könnten einen Baum bauen und mit Tiefen alogrithm mit Priorität number Eigenschaft lesen.

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

Danke, könnte ein anderer Weg sein? –

+0

@MasoudGhorbani, siehe Bearbeiten. –

Verwandte Themen