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

ES6 数组的扩展(十六)

1. Array.from()

特性:从类数组对象或可迭代对象中创建一个新的数组实例。
用法:将类数组对象或可迭代对象转换为数组。

const likeArray = { 0: 'a', 1: 'b', length: 2 };
const arr = Array.from(likeArray);
console.log(arr); // 输出:['a', 'b']

2. Array.of()

特性:创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
用法:创建一个包含多个参数的数组。

const arr = Array.of(1, 2, 3);
console.log(arr); // 输出:[1, 2, 3]

3. find()

特性:返回数组中满足提供的测试函数的第一个元素的值,否则返回 undefined。
用法:找出数组中满足条件的第一个元素。

const arr = [1, 2, 3, 4];
const found = arr.find(element => element > 2);
console.log(found); // 输出:3

4. findIndex()

特性:返回数组中满足提供的测试函数的第一个元素的索引,否则返回 -1。
用法:找出数组中满足条件的第一个元素的索引。

const arr = [1, 2, 3, 4];
const index = arr.findIndex(element => element > 2);
console.log(index); // 输出:2

5. fill()

特性:用一个固定值填充数组中从起始索引到终止索引(不包括)的所有元素。
用法:将数组中一段区域的元素替换为特定值。

const arr = [1, 2, 3, 4];
arr.fill(0, 1, 3);
console.log(arr); // 输出:[1, 0, 0, 0]

6. copyWithin()

特性:将数组的一部分复制到数组的另一个位置。
用法:在数组内部复制元素。

const arr = [1, 2, 3, 4, 5];
arr.copyWithin(0, 3);
console.log(arr); // 输出:[4, 5, 3, 4, 5]

7. 扩展运算符(Spread Operator)…

特性:允许将数组元素展开成单个元素。
用法:在函数调用、数组字面量中使用。

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // 输出:[1, 2, 3, 4, 5]

8. flat() 和 flatMap()

特性:flat() 将数组的嵌套结构扁平化为一个新数组;flatMap() 先映射数组元素,再扁平化。
用法:简化嵌套数组。

const arr = [1, [2, 3], [4, [5, 6]]];
const flatArr = arr.flat();
console.log(flatArr); // 输出:[1, 2, 3, 4, [5, 6]]const flatMapArr = arr.flatMap(x => Array.isArray(x) ? x : [x]);
console.log(flatMapArr); // 输出:[1, 2, 3, 4, 5, 6]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python面试宝典第15题:岛屿数量
  • CentOS6minimal安装nginx-1.26.1.tar.gz 笔记240718
  • 使用Docker 实现 MySQL 循环复制(三)
  • 持续集成08--Jenkins邮箱发送构建信息及测试报告
  • js vue axios post 数组请求参数获取转换, 后端go参数解析(gin框架)全流程示例
  • Docker-compose单机容器集群编排
  • 记录一下在Hyper-v中动态磁盘在Ubuntu中不完全用到的问题(扩展根目录)
  • 41 QOS技术(服务质量)
  • <数据集>光伏板缺陷检测数据集<目标检测>
  • 双非一本嵌入式方向怎么学?
  • 逻辑门的题目怎么做?
  • 探索.NET内存之海:垃圾回收的艺术与实践
  • MongoDB教程(九):java集成mongoDB
  • 4. docker镜像、Dockerfile
  • 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍
  • JavaScript-如何实现克隆(clone)函数
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • HTML中设置input等文本框为不可操作
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript中的对象个人分享
  • mysql中InnoDB引擎中页的概念
  • node和express搭建代理服务器(源码)
  • Web标准制定过程
  • 百度地图API标注+时间轴组件
  • 高程读书笔记 第六章 面向对象程序设计
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于 Babel 的 npm 包最小化设置
  • 基于HAProxy的高性能缓存服务器nuster
  • 记一次用 NodeJs 实现模拟登录的思路
  • 聊聊redis的数据结构的应用
  • 你不可错过的前端面试题(一)
  • 如何用vue打造一个移动端音乐播放器
  • 数据结构java版之冒泡排序及优化
  • 微服务框架lagom
  • 消息队列系列二(IOT中消息队列的应用)
  • 学习Vue.js的五个小例子
  • 用element的upload组件实现多图片上传和压缩
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​批处理文件中的errorlevel用法
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • "无招胜有招"nbsp;史上最全的互…
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • (4) PIVOT 和 UPIVOT 的使用
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (备忘)Java Map 遍历
  • (不用互三)AI绘画工具应该如何选择
  • (回溯) LeetCode 77. 组合
  • (理论篇)httpmoudle和httphandler一览
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)