hi,欢迎访问本站!
当前位置: 首页Web前端正文

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);
声明:无特别说明,转载请标明本文来源!
相关推荐