为什么这个“范围”实现会在chrome中崩溃选项卡

Why does this `range` implementation crash tabs in chrome?

本文关键字:chrome 崩溃 选项 实现 范围 为什么      更新时间:2023-09-26

我写了这个范围函数:

function range(m,n) {
    var x = m
    var xs = [x]
    var op = (m <= n) 
            ? function (a,b) { return a+b }
            : function (a,b) { return a-b }
    while (x !== n) {
        var x = op(x)
        xs.push(x)
    }
    return xs
 }

但当被调用时,它会在Chrome中崩溃(linux 46.0.2490.86(官方版本)(64位))

它给出了"aw,snap!"的消息,以及"Inspected Target Disconnected",但没有更具体的消息。

非常感谢。

您需要不同的功能来计数

function range(m, n) {
    var x = m,
        xs = [x],
        op = m <= n ? function (a) { return a + 1; } : function (a) { return a - 1; };
    while (x !== n) {
        x = op(x);
        xs.push(x);                
    }
    return xs;
}
document.write('<pre>' + JSON.stringify(range(3, 11), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(range(7, 2), 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(range(42, 42), 0, 4) + '</pre>');