数组与伪数组的区别
大家都知道,在js中使用 document.querySelectorAll(选择器)获取到的为该选择器能选择到的所有元素组成的伪数组,所谓伪数组,就是外表和数组一样,能够使用索引遍历,但本质是对象。
数组与伪数组之间的区别:
数组是继承自Array的方法,因此可以使用push(),sort(),pop(),shift()等方法;
而伪数组没有继承自Array的方法,因此没有数组的部分方法和属性。
伪数组拥有的数组属性有:
length:表示伪数组的长度
伪数组拥有的数组属性:
索引访问:可以通过索引来访问为数组中的元素;
toString():将伪数组转换为字符串,并返回该字符串;
join():将伪数组中所有元素组合成一个字符串,并使用指定的分隔符来分割各个元素;
slice():从伪数组中提取一个子数组,并返回一个新数组,不会对原数组造成破坏。
forEach():遍历伪数组中的元素。注意:这个方法在我做蓝桥杯web应用开发题的过程中不可使用,报错信息为:arr.forEach()不是一个方法。但是使用for循环是没有问题的,因此遍历伪数组我更推荐使用for循环。
也还有其他一些方法,就不一一概述了。接下来提一下没有的方法,没有的方法大多是对数组中元素个数进行操作的属性,比如:push()、shift()、pop()等,当然也有一些其他方法,比如map()。因此在使用伪数组的过程中要格外注意不要随意使用数组的方法,以免出现错误。
js中获取伪数组的方法:
1.DOM操作返回的结果:比如使用document.getElementByClassName()、document.querySelectorAll()等,得到的结果是符合类名或选择器的所有元素组成的伪数组。
2.获取节点的所有子元素:node.children——该方法获取到的是节点node中所有子元素组成的伪数组。
js中伪数组如何转化为数组:
let arr=Array.from(伪数组) //将伪数组转换为数组,并使用变量arr接收;
let arr=[...伪数组] //使用展开运算符将伪数组转成数组,并用arr接收;
最后再提一下我在题目中遇到的问题:
我使用let one = document.querySelectoryAll('select option')获取到select标签下所有option元素,记作变量one;
使用let two = document.querySelectory('select').children获取到select标签下所有子节点元素记作变量two;
大家都知道select中子元素只有option,因此使用这两种方法获取到的伪数组都是只包含select中的option。
但是当select中option数量发生改变时,就体现出这两种方法的区别了。直接说结果——使用第一种方法获取到的变量one不会随着option数量变化发生变化。而第二种方法会随着option的数量变化而发生变化,因此更推荐使用第二种方法获取子元素节点组成的伪数组。具体如下图:
图一:子元素改变前
图二:子元素改变后

相关文章:
数组与伪数组的区别
大家都知道,在js中使用 document.querySelectorAll(选择器)获取到的为该选择器能选择到的所有元素组成的伪数组,所谓伪数组,就是外表和数组一样,能够使用索引遍历,但本质是对象。 数组与伪数组之间的区别&…...
Java集合List
List特有方法 经典多态写法 // 经典的多态写法 List<String> list new ArrayList<>();常用API:增删改查 // 添加元素 list.add("Java"); // 添加元素到指定位置 list.add(0, "Python");// 获取元素 String s list.get(0);// 修改…...
elasticsearch基础命令
1 字段分词分析: GET /store_info_data/_analyze {"field": "storeName","text":"20pilapala0" }2 精确查找,去除评分 GET /store_info_data/_search {"query": {"constant_score": {"filter": {&quo…...
Capture One 23 Enterprise for Mac中文版 全面的图像处理工具
Capture One 23 Enterprise for Mac中文版一款专业的图像编辑和管理软件,具备强大的功能和工具,适用于摄影师、摄影工作室和专业用户。 软件下载:Capture One 23 Enterprise for Mac中文版下载 该软件为用户提供了全面的图像处理工具…...
Qt案例 通过调用Setupapi.h库实现对设备管理器中设备默认驱动的备份
参考腾讯电脑管家-软件市场中的驱动备份专家写的一个驱动备份软件案例,学习Setupapi.h库中的函数使用.通过Setupapi.h库读取设备管理器中安装的设备获取安装的驱动列表,通过bit7z库备份驱动目录下的所有文件. 目录导读 实现效果相关内容示例获取SP_DRVIN…...
如何理解JVM
JVM(Java虚拟机)是Java程序的运行环境,它是Java技术的核心组成部分之一。理解JVM涉及到以下几个方面的内容: 1. **虚拟机概念**:虚拟机是一种软件实体,它在物理计算机上模拟出一个计算机系统,使…...
第十四讲:C语言字符函数和字符串函数
目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…...
华为海思2024春招数字芯片岗机试题(共9套)
huawei海思2024春招数字芯片岗机试题(共9套,有答案和解析,答案非官方,未仔细校正,仅供参考)(WX:didadidadidida313,加我备注:CSDN huawei数字题目,谢绝白嫖哈)…...
分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测
分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述…...
与机器对话:ChatGPT 和 AI 语言模型的奇妙故事
原文:Talking to Machines: The Fascinating Story of ChatGPT and AI Language Models 译者:飞龙 协议:CC BY-NC-SA 4.0 从 ELIZA 到 ChatGPT:会话式人工智能的简史 会话式人工智能是人工智能(AI)的一个分…...
概率论基础——拉格朗日乘数法
概率论基础——拉格朗日乘数法 概率论是机器学习和优化领域的重要基础之一,而拉格朗日乘数法与KKT条件是解决优化问题中约束条件的重要工具。本文将简单介绍拉格朗日乘数法的基本概念、应用以及如何用Python实现算法。 1. 基本概念 拉格朗日乘数法是一种用来求解…...
[xboard]real6410-6.2 移植kernel网络驱动
文章目录 硬件电路软件配置问题1问题2问题3问题4功能测试硬件电路 核心板,使用DM9000A [图片] 软件配置 问题1 / # / # ifconfig ifconfig: /proc/net/dev: No such file or directory ifconfig: socket: Fun...
Quarkus初探
Quarkus初探 背景安装Quarkus安装Quarkus CLI 创建Quarkus项目运行Quarkus初探代码修改一下代码 数据持久化创建PanacheEntiry写入数据读取数据 Dev Service使用外部数据库区分dev和prod 构建native应用(依赖Graalvm) 背景 最早是在Infoq上了解到Quarku…...
90天玩转Python-02-基础知识篇:初识Python与PyCharm
90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装&…...
List操作的一些常见问题
1. Arrays.asList转换基本类型数组 在实际的业务开发中,我们通常会进行数组转List的操作,通常我们会使用Arrays.asList来进行转换,但是在转换基本类型的数组的时候,却出现转换的结果和我们想象的不一致。 import java.util.Arra…...
如何使用Java和RabbitMQ实现延迟队列?
前言 今天我们使用Java和RabbitMQ实现消息队列的延迟功能。 前期准备,需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列?-CSDN博客 今天讲的是依赖RabbitMQ的延迟插件实现…...
AI论文速读 | TF-LLM:基于大语言模型可解释性的交通预测
论文标题: Explainable Traffic Flow Prediction with Large Language Models 作者:Xusen Guo, Qiming Zhang, Mingxing Peng, Meixin Zhu(朱美新)*, Hao (Frank)Yang(杨昊) 机构:香港科技大学(广州),约翰…...
智慧矿山视频智能监控与安全监管方案
一、行业背景 随着全球能源需求的日益增长,矿业行业作为国民经济的重要支柱,其发展日益受到广泛关注。然而,传统矿山管理模式的局限性逐渐显现,如生产安全、人员监管、风险预警等方面的问题日益突出。因此,智慧矿山智…...
2024春算法训练4——函数与递归题解
一、前言 感觉这次的题目都很好,但是E题....(我太菜了想不到),别人的题解都上百行了,晕; 二、题解 A-[NOIP2010]数字统计_2024春算法训练4——函数与递归 (nowcoder.com) 这种题目有两种做法:…...
【C++】C++知识点复习
牛客cpp:牛客网在线编程 2024年4月10日:BC1—>BC8 BC4:浮点数精度保留 问题:不加入fixed输入0.359813,最后得到0.36,并不是强制保留0.360。这种写法会保留小数点后三位精度,但是最后输出会省略掉最后…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
