javascript delete item from array -


i have js object

var myclass = class.extend({     _innerarr: [],     add: function( id, url ){         this._innerarr.push([id, url]);     },     delete: function( id ){         $( this._innerarr ).each(function( index ){             if ( $( )[0]==id ){                  this._innerarr.splice( index, 1); // doesn't work!!! uncaught typeerror: cannot call method 'splice' of undefined              }         });     } }); 

but, if code change on:

 var globalarr;   var myclass = class.extend({     _innerarr: [],     add: function( id, url ){         this._innerarr.push([id, url]);     },     delete: function( id ){         globalarr = this._innerarr;         $( this._innerarr ).each(function( index ){             if ( $( )[0]==id ){                  globalarr.splice( index, 1); // work!!!              }         });      } }); 

why this._innerarr not work? don't want using adding variable in project. thinks, other way is...

when using jquery's .each() method, function gets called this current value of array. you're using when doing $( )[0]. ($( )[0] might unnecessary btw.)

you don't need create global variable this, might set scoped variable in delete function.

alternately, can use for loop instead of jquery's each(). that's little faster.


Comments

Popular posts from this blog

user interface - How to replace the Python logo in a Tkinter-based Python GUI app? -

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -