Почему этот "диапазон" реализует краш-вкладки в хроме?

78
11

Я написал эту функцию диапазона:

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 (Official Build) (64-разрядная версия))

Это дает "aw, snap!". сообщение, а также "Проверяемая цель отключена", но не более конкретно.

Большое спасибо.

спросил(а) 2021-01-19T12:54:19+03:00 6 месяцев, 1 неделя назад
1
Решение
65

Вам нужны разные функции для подсчета

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>');

ответил(а) 2021-01-19T12:54:19+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема