上半年在做ExtJS的时候,因为项目一些特殊情况需要直接删数组中的特定元素, 并且传入的参数可能会是下标,也可能会是数组元素。 所以就纠结出了如下的方法,留着以后查阅。
// 获取数组中指定元素的索引 Array.prototype.getIndexByValue = function(value) { var index = -1; for ( var i = 0; i < this.length; i++) { if (this == value) { index = i; break; } } return index; } // 通过遍历,重构数组. Array.prototype.remove = function(dx) { var me = this, removed = null; if (dx > me.length - 1) { return false; } if (isNaN(dx)) { removed = me.remove(me.getIndexByValue(dx)); } for ( var i = 0, n = 0; i < me.length; i++) { if (me != me[dx]) { me[n++] = me } else { removed = me; } } if (removed) me.length -= 1; return removed; - }
该贴已经同步到 qingmosk的微博 |