js编写移除arr中所有值与item相等的元素,不要直接修改数组 arr,返回新数组

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 js编写移除arr中所有值与item相等的元素,不要直接修改数组 arr,返回新数组,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

移除arr中所有值与item相等的元素,不要直接修改数组 arr,返回新数组

    // 移除arr中所有值与item相等的元素,不要直接修改数组 arr,返回新数组
    // 法一(简单写法)
    function remove(arr,item){
        var newArr = []
        // 对arr的拷贝可以使用for循环或者一个技巧slice(0)
        newArr = arr.slice(0)
        var index = newArr.indexOf(item)
        while(index!==-1){
            newArr.splice(index,1)
            index = newArr.indexOf(item)
        }
        return newArr
    }
    console.log(remove([1, 2, 3, 4, 2], 2))

    // 法二(使用filter方法)
    function filterRemove(arr,item){
        return arr.filter(function(e){
            return e!==item
        })
    }
    console.log(filterRemove([1, 2, 3, 4, 2], 2))
    
    // 法三(ES6)
    const removeES = (arr, item) => arr.filter((e) => e !== item);
    console.log(removeES([1, 2, 3, 4, 2], 2))

js编写移除arr中所有值与item相等的元素,不要直接修改数组 arr,返回新数组

知识点:

slice() 方法可从已有的数组中返回选定的元素

arrayObject.slice(start,end)

返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

说明:请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

slice(0)可实现对一个数组的完整拷贝

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目

注释:该方法会改变原始数组

arrayObject.splice(index,howmany,item1,.....,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
howmany 必需要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX 可选。向数组添加的新项目。

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

注意: filter() 不会对空数组进行检测。 filter() 不会改变原始数组

array.filter(function(currentValue,index,arr), thisValue)
function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数

①currentValue:必须。当前元素的值

②index:可选。当前元素的索引值

③arr:可选。当前元素属于的数组对象

filter的函数返回值为true则说明符合条件则保留,为false不符合条件则过滤出去

 其他参数为可选,返回值:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149782.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!