JavaScript循环输出:0,1,10,11,12,2,3,4,5

JavaScript loop with output: 0, 1, 10, 11, 12, 2, 3, 4, 5

本文关键字:输出 循环 JavaScript      更新时间:2023-09-26

我看到了一个循环的输出结果:0,1,10,11,12,2,3,4,5,等等

我知道上面的循环是错误的和不寻常的,也许你会问这个循环的用途是什么,但我想知道我如何实现它。

谢谢

您可以使用数字并将其排序为没有回调的内置Array#sort的字符串。该方法使用按字符串排序。

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
array.sort();
console.log(array);

或者你可以建立一个树,用深度优先算法读取它,优先级为number

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; }