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

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

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

google shop client API returns 400 bad request error while adding an item -