Это часть программы для построения точек (созданных в другом месте) на прямоугольной angular сетке. Если точка выходит за пределы сетки (либо index <0, либо index> grid_length), то индекс корректируется, чтобы поместить ее в сетку. Я сделал это тремя способами:
- обычный js код: функция get_bounded_index () : это работает нормально
- тройные операторы: тройная функция () : это работает нормально
- операторы switch: function switch_statement () : это не удается.
Я пробовал function switch_statement ( ) с параметром grid_length и без него, безрезультатно. Извините за отсутствие номеров строк, не могу с этим разобраться. Кроме того, на консоли указаны номера строк, превышающие длину моего файла. Это периодически происходит с другими JS файлами, которые я пишу. Я тоже в неведении по этому поводу. Подскажите, пожалуйста, в чем я ошибаюсь.
function get_bounded_index(index) {
bounded_index = index;
if (bounded_index < 0) {
bounded_index = index + grid_length;
}
if (bounded_index >= grid_length) {
bounded_index = index - grid_length;
}
return bounded_index;
}
function ternary(index) {
bounded_index = index;
bounded_index < 0 ? bounded_index = index + grid_length : bounded_index = index - grid_length;
return bounded_index;
}
function switch_statement(index, grid_length) {
bounded_index = index;
switch (index) {
case (index < 0):
bounded_index === index + grid_length;
break;
case (index > grid_length):
bounded_index === index - grid_length;
break;
}
return bounded_index;
}
let grid_length = 100;
console.log(get_bounded_index(-10)); // 90 ok
console.log(get_bounded_index(110)); // 10 ok
console.log("__________");
console.log(ternary(-10)); // 90 ok
console.log(ternary(110)); // 10 ok
console.log("__________");
console.log(switch_statement(-10, grid_length )); // -10 implies grid_length = 0
console.log(switch_statement(110, grid_length)); // 110 implies grid_length = 0