js如何删除数组中指定的元素
墨初 Web前端 593阅读
js脚本中想要从数组中删除一个元素可以使用 splice() 方法,但此方法使用起来并是不那么方便,虽然可以通过数组中的元素的下标去删除元素,但如果删除指定的元素值就做不到了。不过,可以通过其他的方法来配合 splice() 方法来实现数组中指定元素值的效果。
js删除数组中指定的元素值
例1:
先定义一个删除数组中指定元素值的方法
/** * @name 删除数组中的指定元素值 * @param arr 被操作的数组 * @param var 指定的元素值 * * @return array 返回处理过的数组 * @host https://www.73so.om */ function removeValue(arr,val) { var index = arr.indexOf(val); if (index > -1) { arr.splice(index, 1); } } var emp = ['abs', 'dsf', 'mochu', '73so.com']; //调用函数 removeValue(emp,'abs'); console.log(emp); // ["dsf", "mochu", "73so.com"]
为了更方便的调用上面的函数,可以将上面的函数转为js中的方法!
Array.prototype.remove = function (val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; var emp = ['abs', 'dsf', 'mochu', '73so.com']; //调用上面的方法 emp.remove('abs'); console.log(emp);
示例2:
/** * @name 删除数组中的指定元素值 * @param arr 被操作的数组 * @param var 指定的元素值 * * @return array 返回处理过的数组 * @host https://www.73so.om */ function removeByValue(arr, val) { for (var i = 0; i < arr.length; i++) { if (arr[i] == val) { arr.splice(i, 1); break; } } } var emp = ['abs', 'dsf', 'sdf', 'fd']; //调用函数 removeByValue(emp, "fd") console.log(emp);
函数转为方法
Array.prototype.removeByValue = function (val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) { this.splice(i, 1); break; } } } var emp = ['abs', 'dsf', 'sdf', 'fd']; //调用方法 emp.removeByValue("sdf"); console.log(emp);