Array.prototype.remove = function(obj){ if(null == obj){ return false }
for (var i =0 ,n =0 ;i<this.length;i++){ if (this[i]!=obj){ this[n++] = this[i];
}
} this.length -= 1;
}var arr = new Array(1,2,3,4,5);
arr.remove(3)学javascript有一段时间了,今天看下论坛上的很多代码都不懂,前来问问,1,为什么会想到这样的写法,他是怎么想的呢?2,有没有更好点的写法,我感觉我很笨有的像伸手党。。。
1 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
Array
的remove
方法肯定离不开splice
,你的remove
方法接受的是一个obj
,如果不考虑对象不同,但是值相同的情况,那么下面的方法应该是最简单的:
Array.prototype.remove = function(obj) { let index = this.indexOf(obj); if(index !== -1) this.splice(index, 1); }
添加回答
举报
0/150
提交
取消