js像循环数组那样循环一个数字,Array.from()

news/2024/11/16 7:06:20/

Array.from() 是 JavaScript 中的一个静态方法,它可以从类数组对象或可迭代对象中创建一个新的数组实例。这个方法非常有用,尤其是在处理那些不是真正的数组但可以像数组一样访问其元素的对象时。

基本语法

javascript">Array.from(arrayLike, mapFn, thisArg)
  • arrayLike - 任何具有 length 属性和索引的类数组对象或可迭代对象。
  • mapFn (可选) - 对新数组中的每个元素调用的映射函数。该函数接收三个参数:
    • 当前元素
    • 当前索引
    • 新数组本身
  • thisArg (可选) - 执行 mapFn 时,用作 this 的值。

使用示例

从类数组对象创建数组

DOM 方法如 querySelectorAll 返回的是一个类数组对象(NodeList)。我们可以使用 Array.from 将其转换为真正的数组,以便使用数组的方法。

javascript">const divs = document.querySelectorAll('div'); // NodeList, 类数组对象
const divsArray = Array.from(divs); // 转换为真正的数组
console.log(divsArray instanceof Array); // true
使用映射函数

在创建数组的同时,我们还可以对每个元素应用一个函数来转换它们。

javascript">const numbers = [1, 2, 3];
const squares = Array.from(numbers, x => x * x);
console.log(squares); // 输出: [1, 4, 9]
处理非数组对象

即使对象没有显式地定义为数组,只要它有 length 属性和相应的索引属性,Array.from 就能将其转换为数组。

javascript">const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 4};
const newArray = Array.from(arrayLike,(item)=>{console.log(item) //'a'  //'b'  //'c'  //undefined
});
console.log(newArray); // 输出: ['a', 'b', 'c', undefined]

特性

  • 处理空对象:如果 arrayLike 参数是一个空对象(即没有任何索引属性),则 Array.from 会返回一个空数组。
  • 处理字符串:当 arrayLike 是一个字符串时,Array.from 会将字符串拆分成单个字符组成的数组。
  • 处理稀疏数组:对于稀疏数组(某些索引位置没有值的数组),Array.from 会跳过这些缺失的位置,不会在结果数组中包含 undefined

Array.from 提供了一种灵活且强大的方式来创建数组,并允许你在创建过程中对数据进行即时处理。这对于现代JavaScript开发来说是非常有用的工具。


http://www.ppmy.cn/news/1547384.html

相关文章

python程序对服务器cpu和内存资源占用的管理。

背景 在服务器上部署了一套目标检测的程序,做成while true 的轮询检测数据更新的定时任务。 结果没想到那台服务器还有一套可视化程序要给领导演示看,结果演示的时候平台各种报错。 然后通过top查看了一下资源利用率发现python的程序cpu 130。&#xf…

YOLOv11改进,YOLOv11添加GnConv递归门控卷积,二次创新C3k2结构

摘要 视觉 Transformer 在多种任务中取得了显著的成功,这得益于基于点积自注意力的新空间建模机制。视觉 Transformer 中的关键因素——即输入自适应、长距离和高阶空间交互——也可以通过卷积框架高效实现。作者提出了递归门控卷积(Recursive Gated Convolution,简称 gnCo…

大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载

随着生成算法、预训练模型、多模态数据分析等AI技术的聚集融合,AIGC技术的实践效用迎来了行业级大爆发。通用大模型技术的成熟推动了新一轮行业生产力变革,在投入提升与政策扶植的双重作用下,以大模型技术为底座、结合专业化金融能力的金融大…

GaussDB全密态数据库等值查询

全密态数据库等值查询 可获得性 本特性自V500R001C20版本开始引入。 特性简介 密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成…

LeetCode - #134 加油站

文章目录 前言1. 描述2. 示例3. 答案关于我们前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新到 131 期,我们会保持更新时间和进度(周一…

开发中SQL积累

1.SQL中判断varchar类型是否为空? 检查 NULL 值: WHERE column_name IS NULL 检查空字符串: WHERE column_name 结合 NULL 和空字符串的检查: WHERE column_name IS NULL OR column_name 2.TRIM函数 作用:…

如何用Java爬虫“偷窥”淘宝商品类目API的返回值

在这个数据为王的时代,获取信息就像是在玩一场大型的寻宝游戏。而淘宝,作为电商界的巨人,其商品类目API就像是藏宝图上的秘密标记。今天,我们就来聊聊如何用Java爬虫技术,悄悄地“偷窥”这些宝藏。 准备工作&#xff1…

【大数据学习 | flume】flume之常见的source组件

1. exec source Exec Source:监听一个指定的命令,获取一条命令的结果作为它的数据源 ; 常用的是tail -F file指令监控一个文件,即只要应用程序向日志(文件)里面写数据,source组件就可以获取到日志(文件)中最新的内容 。 可用此方…