JavaScript 如何从数组中删除指定项目?

2020-12-19  乐帮网

javascript

从JavaScript 的数组中删除一项,这个需求看着很简单,可是突然遇到了竟然一下子写不上来。对于入门级选手来说很可能是写成这下面样子的。

 const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
        const removeValue = 7;
        const newarr = [];
        console.log('================3=======');
        console.log(array);

        for (let i = 0; i < array.length; i++) {
            if (array[i] != removeValue)
                newarr.push(array[i]);
        }
        console.log(newarr);

这个时候你还别笑,虽然看上去不咋地但是无意间就避免了一些坑,安全系数上还是不错的,但是当数据数量比较大时这种方法就不能使用了。

推荐使用indexOf + splice来实现

  const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
        const removeValue = 7;
        console.log('================1=======');
        console.log(array);
        const index = array.indexOf(removeValue);
        if (index > -1) {
            array.splice(index, 1);
        }
        console.log(array);

上面代码实现的是移除指定的元素,但是还有一个问题没有解决,它只移动了第一个元素,如果有多个 7 那么就漏掉了,于是可以改进如下:

 const array = [5, 8, 2, 5, 7, 9, 3, 10, 25, 7];
        const removeValue = 7;
        console.log('================2=======');
        console.log(array);
        console.log(removeItem(array, removeValue));

        function removeItem(arr, value) {
            var i = 0;
            while (i < arr.length) {
                if (arr[i] === value) {
                    arr.splice(i, 1);
                } else {
                    i++;
                }
            }
            return arr;
        }

综上所述,核心在于函数 splice 

array.splice(index,howmany,item1,.....,itemX)

index 规定从何处添加/删除元素
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"
item1, ..., itemX 可选。要添加到数组的新元素

本文链接

原创作品禁止转载!

相关文章:

JavaScript 如何从数组中删除指定项目?

JavaScript 操作 Cookie

JavaScript use strict 是什么?

js 选择打印区域

JS 完美判断页面是否在移动端打开

js 重定向 页面怎么写?

纯js日期控件 可以自定义样式

HTML中JS操作DOM样式Style对照表

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力