Sto utilizzando il seguente codice nel CoffeeScript:Utilizzando indexOf in CoffeeScript
if elem in my_array
do_something()
che compila a questo javascript:
if (__indexOf.call(my_array, elem) < 0) {
my_array.push(elem);
}
posso vedere che sta utilizzando la funzione di __indexOf che è definita al in cima alla sceneggiatura.
La mia domanda riguarda questo caso d'uso: Voglio rimuovere un elemento da un array e voglio supportare IE8. Posso farlo facilmente con indexOf
e splice
nei browser che supportano indexOf
su un oggetto array
. Tuttavia, in questo IE8 non funziona:
if (attr_index = my_array.indexOf(elem)) > -1
my_array.splice(attr_index, 1)
Ho provato ad utilizzare la funzione __indexOf
definito da CoffeScript ma ottengo un errore di parola riservata nel compilatore.
if (attr_index = __indexOf.call(my_array, elem) > -1
my_array.splice(attr_index, 1)
Così come posso usare CoffeScript o c'è un metodo più discreto per chiamare indexOf? Sembra strano definire la stessa funzione due volte, solo perché CoffeeScript non mi permette di usare la loro ...
possibile duplicato di [Pulisci il modo per rimuovere l'elemento dall'array javascript (con jQuery, coffeescript)] (http://stackoverflow.com/questions/4825812/clean-way-to-remove-element-from-javascript-array-with-jquery-coffeescript) –