Я использую следующий код в CoffeeScript:
if elem in my_array
do_something()
Который компилируется в этот javascript:
if (__indexOf.call(my_array, elem) < 0) {
my_array.push(elem);
}
Я вижу, что он использует функцию __indexOf, которая определена в начале скрипта.
Мой вопрос касается следующего варианта использования: Я хочу удалить элемент из массива и хочу поддерживать IE8. Я могу легко сделать это с помощью indexOf
и splice
в браузерах, которые поддерживают indexOf
для объекта array
. Однако в IE8 это не работает:
if (attr_index = my_array.indexOf(elem)) > -1
my_array.splice(attr_index, 1)
Я пытался использовать функцию __indexOf
, определенную CoffeScript, но получаю ошибку зарезервированного слова в компиляторе.
if (attr_index = __indexOf.call(my_array, elem) > -1
my_array.splice(attr_index, 1)
Итак, как я могу использовать CoffeScript или есть более незаметный метод для вызова indexOf?Кажется странным определять одну и ту же функцию дважды только потому, что CoffeeScript не позволяет мне использовать их...