2013-06-15 3 views
0

Я создаю через цикл PHP (причина цикла, потому что я хочу больше или меньше случаев) переключатель функции Javascript, что выводит это:Переопределение функции после того, как он будет создан в Javascript

function my_function(array_name) { 
    switch (true) { 
    case (array_name[1] < x < array_name[2]): 
      console.log("between: 1 & 2"); 
      break; 
    case (array_name[2] < x < array_name[3]): 
      console.log("between: 2 & 3"); 
      break; 
    default: 
      console.log("none"); 
      break; 
    } 
} 

Теперь, когда документ загружен, я создаю массив Javascript, который содержит значения, которые я хочу передать функции.

var array_to_execute = [0,1000,2000,3000]; 

Как я могу вызвать функцию после создания этого массива, передавая эти значения? Что-то вроде:

my_function(array_to_execute); 

Это приведет исполнение:

switch (true) { 
    case (1000 < x < 2000): 
      console.log("between: 1 & 2"); 
      break; 
    case (2000 < x < 3000): 
      console.log("between: 2 & 3"); 
      break; 
    default: 
      console.log("none"); 
      break; 
    } 
+1

Кстати, 'array_name [1] <х PleaseStand

+0

В качестве побочного примечания «case (x) case (y)» обычно записывается как 'if (x) else if (y) ...' – georg

ответ

1

Вызов функции, которые вы получили в виду (my_function(array_to_execute)) должно быть прекрасно!

проблемы вы, вероятно, имеют то, потому что:

case (array_name[1] < x < array_name[2]): 

не работает так, как вы думаете, что он делает. (Это в конечном итоге сравнения истинностное значение числа.) Используйте вместо этого и вы должны быть хорошо идти:

case (array_name[1] < x && x < array_name[2]): 
+0

Спасибо, проще, чем я думал :) – Alvaro

Смежные вопросы