js filter,every,includes 过滤数组

背景:

     页面:在项目中遇到的,前端页面显示为,顶部是下拉搜索条件,下面是一个表格;

     数据:接口请求一次性拿到所有:搜索条件里的下拉选项和表格中的数据;

     现状:需要前端在搜索条件时,筛选表格数据展示,在前端进行筛选;

    为什么不在后端进行筛选?

    答:在某个页面中,接口已经把所有进行数据都返回前端展示了,现在的页面只是多了筛选查看,后端不想再提供接口,让前端还是调用之前的接口进行处理。

  案例一

  let arr = [
      {
        type: 'uddaas,xiao',
        name: '红色,小',
      },
      {
        type: 'ffoop,da',
        name: '黄色,大',
      },
      {
        type: 'hhhugd,da',
        name: '绿色,大',
      },
    ]
    console.log('原始数据:', arr)
    let str1 = ['ffoop','da']
    
  

   先过滤,再把指定字符串转换为数组,再通过数组比对,返回true或false,查找到对应的数据;

  let results1 = arr.filter( (v) => {
      // filter过滤数组
      // 字符串转换数组
      let typesId = v.type.split(',') 
      return str1.every((e) => {
        // every查找符合的元素
        // includes判断数组是否包含指定的值,有则返回true,否则返回false
        return typesId.includes(e)
      })
    })
    console.log('results1:',results1)
//     {
//     "type": "ffoop,da",
//     "name": "黄色,大"
// }

    案例二
   

 let arr1 = [12,13,14,15,16]

    let iniArr = []

    let arr2 = [1000,2000,3000]

    let obj1 = [

      {

        arr: [1000,2000,3000],

        title: '数字信息',

      },

      {

        arr: [1100,2100,3100],

        title: '数字信息1',

      },

      {

        arr: [1200,2200,3200],

        title: '数字信息2',

      },

    ]


     通过filter过滤,在过滤中使用every查找,并通过includes验证是否有符合的数据,有则返回true,否则返回false
  

  let filterObj = obj1.filter((v1) => {


      return iniArr.every((e1) => {

        return v1.arr.includes(e1)

      })

    })

    console.log('filterObj:',filterObj)  

    // {

//     "arr": [

//         1100,

//         2100,

//         3100

//     ],

//     "title": "数字信息1"

// }

不足:在写这部分需求时,花费了较长时间,没有想到filter,every和includes的处理思路,请教了同事后才解决,自己的基础知识还需要打磨。

相关推荐

  1. 数组对象过滤

    2024-02-21 00:12:02       56 阅读
  2. js filter,every,includes 过滤数组

    2024-02-21 00:12:02       48 阅读
  3. js 数组过滤删除空对象

    2024-02-21 00:12:02       25 阅读
  4. Mongodb使用$<identifier>过滤更新数组元素

    2024-02-21 00:12:02       35 阅读
  5. js new Set()过滤重复数据

    2024-02-21 00:12:02       58 阅读
  6. js 递归过滤接口数据

    2024-02-21 00:12:02       54 阅读
  7. MySQL 保姆级教程(四):过滤数据

    2024-02-21 00:12:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 00:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 00:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 00:12:02       82 阅读
  4. Python语言-面向对象

    2024-02-21 00:12:02       91 阅读

热门阅读

  1. phpcms v9敏感词内容替换

    2024-02-21 00:12:02       48 阅读
  2. 清华 armbian bookworm 源

    2024-02-21 00:12:02       57 阅读
  3. 建站用帝国CMS好还是WordPress好

    2024-02-21 00:12:02       56 阅读
  4. Mini-Tokio 的精简实现代码

    2024-02-21 00:12:02       66 阅读
  5. redis

    2024-02-21 00:12:02       43 阅读
  6. Python系列(17)—— 位运算符

    2024-02-21 00:12:02       44 阅读
  7. MySQL学习笔记4 DQL

    2024-02-21 00:12:02       44 阅读
  8. LeetCode 2744.最大字符串配对数目

    2024-02-21 00:12:02       46 阅读
  9. 什么是机器学习

    2024-02-21 00:12:02       57 阅读