js如何删除数组中指定的元素
墨初 Web前端 1190阅读
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);