当前位置: 首页 > article >正文

用了queryselectall获取了所有div,是伪数组,什么是伪数组,如何将伪数组转换成真正数组,然后用filter进行一次和二次过滤

什么是伪数组?

伪数组(array-like object)是指具有 length 属性并且元素按索引(如 0, 1, 2)排列的对象,但不具备数组的方法(如 map, filter 等)。常见的伪数组示例有:

  • NodeList(如 document.querySelectorAll() 返回的结果)
  • arguments 对象(在函数内)

如何将伪数组转换成真正的数组?

你可以使用以下几种方法将伪数组转换成真正的数组:

  1. Array.from() 方法

     

    javascript

    复制代码

    const divs = document.querySelectorAll('div'); const divArray = Array.from(divs);

  2. 扩展运算符(...

     

    javascript

    复制代码

    const divs = document.querySelectorAll('div'); const divArray = [...divs];

  3. Array.prototype.slice.call() 方法

     

    javascript

    复制代码

    const divs = document.querySelectorAll('div'); const divArray = Array.prototype.slice.call(divs);

使用 filter 进行一次和二次过滤

假设你想对这些 div 元素进行两次不同的过滤,以下是如何实现的示例:

 

javascript

复制代码

// 获取所有 div 元素的伪数组 const divs = document.querySelectorAll('div'); // 转换为真正的数组 const divArray = Array.from(divs); // 一次过滤:过滤出包含特定类名的 div const firstFilter = divArray.filter(div => div.classList.contains('first-class')); // 二次过滤:从第一次过滤的结果中再筛选包含特定文本的 div const secondFilter = firstFilter.filter(div => div.textContent.includes('specific text')); // 打印结果 console.log('第一次过滤结果:', firstFilter); console.log('第二次过滤结果:', secondFilter);

说明

  • 一次过滤:使用 filter 筛选出满足条件的 div,例如包含特定类名的元素。
  • 二次过滤:在第一次过滤的结果基础上进行进一步筛选,如筛选出包含特定文本的元素。

这种方法让你能够逐步完善筛选逻辑,使得代码更加清晰、易于维护。


http://www.kler.cn/a/376869.html

相关文章:

  • 透明部署、旁路逻辑串联的区别
  • (概率论)无偏估计
  • 备考蓝桥杯:顺序表相关算法题
  • maven的简单介绍
  • 经典多模态模型CLIP - 直观且详尽的解释
  • 关于物联网的基础知识(二)——物联网体系结构分层
  • 启纬科技发布6色无源电子纸手机壳InkaceE6
  • 00-开发环境 MPLAB IDE 配置
  • 手机无线/有线投屏电脑方案
  • 《 C++ 修炼全景指南:十八 》缓存系统的技术奥秘:LRU 原理、代码实现与未来趋势
  • PHP如何实现表单与数据安全
  • Nature|用于无线监测颅内信号的植入式柔性超声波传感器(柔性传感/健康监测/植入式电子/水凝胶)
  • Windows上安装Redis
  • String可以被继承吗?
  • 【开源免费】基于SpringBoot+Vue.JS墙绘产品展示交易平台(JAVA毕业设计)
  • 《分子科学学报》
  • 怎么压缩pdf文件大小?关于压缩PDF文件大小的几种压缩方法
  • Git常用高频命令学习
  • Milvus - 标量字段索引技术解析
  • Linux云计算 |【第五阶段】CLOUD-DAY10
  • 实体类的json和对象转换工具类
  • Python Flask内存泄漏分析定位
  • 尚航科技亮相中国国际数字经济博览会,重磅发布怀来尚云智算中心
  • KTHREAD--InitialStack和KernelStack和TSS的esp0
  • css实现antd丝带效果
  • ubuntu安装与配置Nginx(2)