IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> javaScript中的filter()方法和find()方法,两数组补集的解决方法 -> 正文阅读

[JavaScript知识库]javaScript中的filter()方法和find()方法,两数组补集的解决方法

今天遇到一个需求,有两个数组(Array和arr),一个大数组Array,一个小数组arr,arr中的元素Array中都有,需求是在Array中去掉所有的arr,即获取👇图中灰色部分

本来是想遍历然后一个一个的比,👇就比如说。。。。。这一大长串

<button onclick="myfunction()">click</button>
    <script>
        let Array = [32, 4, 11, 55, 46, 99, 104, 54, 16, 33, 78, 43, 40]
        let arr = [32, 33, 16, 40]
        function myfunction() {
            let newarr = []
            let flag = true
            Array.forEach(i1=>{
                for(let i = 0; i< arr.length; i++){
                    if(arr[i] === i1){
                        flag = false
                        break
                    }
                }
                if(flag){
                    newarr.push(i1)
                }
                flag = true
            })
            console.log(newarr)
        }
    </script>

结果写了一大堆代码,但我后来发现了两个超好用的方法。

首先是filter()方法,

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

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

这个方法可以用来查找满足条件的所有元素,filter()中要传入一个函数,数组中的每个元素都会执行这个函数,一定要加一个return返回值!!!👇

 <button onclick="myfunction()">click</button>
    <script>
        let arr = [32, 33, 16, 40]
        function myfunction() {
            const result = arr.filter(i => {
                return i > 30
            })
            console.log(result)
        }
    </script>

?另一个就是find(),这好像是我第一次见到find()这个方法,这是一个es6的语法,find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。当数组中的元素在测试条件时返回?true?时, find() 返回符合条件的元素,之后的值不会再调用执行函数,如果没有符合条件的元素返回 undefined。对于空数组不执行,同时不会改变原本的数组。👇在函数里也要记得加return!!!

 <button onclick="myfunction()">click</button>
    <script>
        let arr = [32, 33, 16, 40]
        function myfunction() {
            const result = arr.find(i => {
                return i > 30
            })
            console.log(result)
        }
    </script>

然后,通过上面的这两个方法就可以很轻松的解决最开始的问题了,👇

<button onclick="myfunction()">click</button>
    <script>
        let Array = [32, 4, 11, 55, 46, 99, 104, 54, 16, 33, 78, 43, 40]
        let arr = [32, 33, 16, 40]
        function myfunction() {
            const result = Array.filter(i1 => {
                return !arr.find(i2 => {
                    return i1 === i2
                })
            })
            console.log(result)
        }
    </script>

?find()前面的!如果去掉的话返回就会变成交集哦

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:46:04  更:2021-07-14 10:46:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 0:12:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码