js从数组中删除指定值(不是指定位置)的元素

本文介绍了一种在JavaScript中从数组中删除特定值的方法,而不是根据元素的位置进行删除。通过扩展Array原型添加indexOf和remove方法实现。

来自:http://zhidao.baidu.com/question/178207010.html

RT: js从数组中删除指定值的元素,注意是指定值,而不是指定位置。 比如数组{1,2,3,4,5},我要删除其中的元素3,但是这个3的位置我是不知道的,只知道要删除值为3的这一个元素,请问要怎么写?

2010-08-25 12:25
如果你没有使用第三方框架,有类似的扩展功能可以根据指定值,返回元素的下标的话,只能自己先查找,然后再删除。

   <script type="text/javascript">
        Array.prototype.indexOf = function(val) {
            for (var i = 0; i < this.length; i++) {
                if (this[i] == val) return i;
            }
            return -1;
        };
        Array.prototype.remove = function(val) {
            var index = this.indexOf(val);
            if (index > -1) {
                this.splice(index, 1);
            }
        };

        var array = [1, 2, 3, 4, 5];
        array.remove(3);
                
    </script>
提问者评价
已经搞定了,我用replace直接把要删除的值用""替换了

在 JavaScript 中,有多种方法可以从数组删除指定元素: ### 使用 `splice()` 方法 结合 `indexOf()` 方法找到元素的索引,然后使用 `splice()` 删除元素。示例代码如下: ```javascript let array = [1, 2, 3, 4, 5]; let index = array.indexOf(3); if (index > -1) { array.splice(index, 1); } console.log(array); ``` 此方法直接修改原数组,适用于删除单个指定元素[^2][^3][^4]。 ### 使用 `filter()` 方法 创建一个新数组,该数组包含原数组中所有不等于指定元素元素。示例代码如下: ```javascript let arr = [1, 2, 3, 4, 5]; let itemToRemove = 3; let newArr = arr.filter(item => item!== itemToRemove); console.log(newArr); ``` 这种方法不会修改原数组,而是返回一个新数组,适合不希望改变原数组的场景。 ### 使用 `pop()` 方法 用于删除并返回数组的最后一个元素。示例代码如下: ```javascript let arr = ['a', 'b', 'c']; let lastObject = arr.pop(); console.log(lastObject); console.log(arr); ``` 适用于删除数组的最后一个元素 [^3]。 ### 使用 `shift()` 方法 删除并返回数组第一个元素。示例代码如下: ```javascript let arr = [1, 2, 3]; let firstObject = arr.shift(); console.log(firstObject); console.log(arr); ``` 适用于删除数组第一个元素 [^3]。 ### 自定义函数 `removeByValue` 在 `src/utils/util.js` 中定义函数 `removeByValue` 进行元素删除。示例代码如下: ```javascript function removeByValue(arr, val) { for (let i = 0; i < arr.length; i++) { if (arr[i] === val) { arr.splice(i, 1); break; } } } let arr = [1, 2, 3, 2]; removeByValue(arr, 2); console.log(arr); ``` 适用于删除数组指定值的第一个元素 [^3]。 ### 使用 `Set` 对象 使用 `Set` 可以删除数组中的重复项,也可以用于处理数组元素的唯一性。示例代码如下: ```javascript let anyRandomArray = ['A', 'B', 'A', 'C', 'B']; let uniqueChars = [...new Set(anyRandomArray)]; console.log(uniqueChars); ``` 适用于需要去除数组中重复元素的场景 [^4]。 ### 使用 `for...of` 循环遍历数组 ```javascript var arr = [1, 2, 3, 4, 5]; for (var item of arr) { if (item === 3) { arr.splice(arr.indexOf(item), 1); } } console.log(arr); ``` 此方法直接修改原数组,适用于删除指定元素 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值