JS数组遍历中for,for in,for of,map,forEach各自的使用方法与优缺点
作者:wdc 发布时间:2024-05-02 16:15:45
标签:JS,数组遍历
JS数组遍历普通函数
优点:支持流程控制(break、continue、return)
for
const arr = ["A", "B", "C"]
for(let i = 0; i<arr.length; i++){
console.log(arr[i])
}
优点:能够对索引精确控制
缺点:语法较为繁琐
for in
const arr = ["A","B","C"]
arr["3"] = 1
Array.prototype["cc"] = "ck"
for(let e in arr){
console.log(arr[e])
}
缺点:
1.遍历索引为字符串,即e类型为字符串
2.会遍历可枚举的非数字类型键以及原型上的键
3.不同浏览器对for in 顺序实现可能不一致
for of
const arr = ["A","B","C"]
arr["3"] = 1
Array.prototype["cc"] = "ck"
for(let i of arr){
console.log(i)
}
优点:语法简洁、有序遍历
缺点:由于遍历的是值,对索引无直接控制
函数式编程-->高阶函数
缺点,不能进行流程控制
map
const arr = ["A","B","C"]
arr.map(e => console.log(e))
优点:语法简洁,返回一个旧数组的映射数组,不影响原数组
forEach
const arr = ["A","B","C"]
arr.forEach(e => console.log(e))
优点:语法简洁,在不需要返回数组时,性能较好比map好
名称 | 流程控制 | 函数式 |
---|---|---|
for | T | |
for of | T | |
forEach | T | |
map | T |
JS数组遍历函数总结:
在不需要流程控制时,优先使用map,不需要返回值使用forEach,需要索引的控制时,可以回退至for,for of一般结合内置默认迭代器的数据结构(Map、Set)使用,在需要结合生成器 async await 异步迭代时的选择
来源:https://www.cnblogs.com/sefaultment/p/10413690.html


猜你喜欢
- 今天看关于Git的博客,发现总结关于Git仓库的文档,写的思路很清晰。可以和前一篇文章,对照的看,可以更加清晰理解。git-referenc
- 目录1.1 题目1.2 思路1.2.1 发送请求1.2.2 解析网页1.2.3 获取结点1.2.4 数据保存 (单线程)1.2.4 数据保存
- 关联2张表时出现了无法创建外键的情况,从这个博客看到,问题出在第六点的Charset和Collate选项在表级和字段级上的一致性上。我的2张
- merge()1.常规合并①方法1指定一个参照列,以该列为准,合并其他列。import pandas as pddf1 = pd.DataF
- 废话不多说了,上代码吧:import threadingimport requestsimport timeimport osclass M
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- JMeter可以通过os命令调用Python脚本,Python同样可以通过系统命令调用JMeter执行压测Python调用JMeter首先要
- 如下所示:import jsonimport http.clientconnection = http.client.HTTPSConnec
- 前言大家做开发的应该都知道,在开发程序中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写
- 最近在pythonTip做题的时候,遇到了deque模块,以前对其不太了解,现在特此总结一下deque模块是python标准库collect
- 今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题。因为我是web开发小白,所以上网查了一波,得以解决~~初次进行we
- 从某种程度上说,判断一个网页设计师是否优秀,可以从其在WEB开发(或网页设计)中是否合理的采用各种图片格式得出结论。事实上,或许所有人都知道
- 一.数值类型Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERI
- 目录需求背景思路分析UI展示开始使用一 编写支付组件模板二 支付组件的JS相关代码和说明附:组件JS完整的源码需求背景市场报告列表展示的报告
- 1、什么是AspJpeg?AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,AspJpeg可以使用很少的代码在
- 为什么要使用多线程?使用多线程,可以同时进行多项任务,可以使用户界面更友好,还可以后台执行某些用时长的任务,同时具有易于通信的优点。pyth
- 这个是很有用的一个运算,除了本身可以求自然对数,还是求指数函数需要用到的基础函数。实现原理就是泰勒展开,最简单是在x=1处进行泰勒展开:但该
- 安装 xlwings直接安装用 pip install xlwings,用 anaconda 的,已经内置了,见下图。导入 xlwingsi
- 测试函数主要是用来评估优化算法特性的,这里我用python3绘制了部分测试函数的图像。具体的测试函数可以结合 * 来了解。想要显示某个测试
- 效果图自定义一个Item新建一个QWidget对象在QWidget内添加Layout在Layout内添加要的控件为QWidget设置Layo