foreach、for in和for of的区别?

news/2024/7/19 14:44:48 标签: 前端, js

foreachfor...infor...of是三种不同的循环结构,它们在JavaScript中用来遍历数组或对象的属性。它们有一些重要的区别,以及各自的优点和适用情况。

        1.foreach:这是最普通的循环结构,它遍历数组或对象的每一个元素或属性。它没有提供任何方法来改变遍历的顺序,也不能用来创建范围更广的迭代器。

 
let arr = [1, 2, 3, 4, 5];
arr.forEach(function(item, index) {
console.log(item); //依次输出1,2,3,4,5
});

        2.for...in:这是用来遍历对象属性的循环结构。它不会遍历原型链上的属性,只遍历对象自身的属性。此外,for...in可以用于非数组的场合,这是它的一大优点。

 
let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key); //依次输出a,b,c
}

        3.for...of:这是ES6中新增的循环结构,用于遍历可迭代对象(包括数组,Map,Set等)。与forEachfor...in相比,for...of有一些重要的优点。首先,它可以用于更广泛的迭代器,包括一些自定义的迭代器。其次,for...of会直接返回每次迭代的值,而不是像forEach那样返回一个数组。此外,它也不会遍历原型链。

 
let arr = [1, 2, 3, 4, 5];
for (let value of arr) {
console.log(value); //依次输出1,2,3,4,5
}

以上就是这三种循环结构的基本区别和各自的优点。在实际编程中,你可以根据需要选择合适的循环结构。


http://www.niftyadmin.cn/n/5153968.html

相关文章

matplotlib从起点出发(10)_Tutorial_10_Layout

使用受约束的绘图干净整洁地将图形合适排列。 受约束的布局会自动调整子图,以便刻度标签、图例和颜色条等装饰不会重叠,同时仍保留用户请求的逻辑布局。 受约束布局类似于“紧密布局”,但它要更灵活。它处理放置在多个轴上的Axes(放置颜色条…

代碼隨想錄算法訓練營|第六十天|739. 每日温度、496.下一个更大元素 I。刷题心得(c++)

目录 讀題 739. 每日温度 自己看到题目的第一想法 看完代码随想录之后的想法 496.下一个更大元素 I 自己看到题目的第一想法 看完代码随想录之后的想法 739. 每日温度 - 實作 思路 Code 清晰版 精簡版 496.下一个更大元素 I - 實作 思路 原思路 代碼隨想錄思路…

hexo博客发布换电脑换地方了怎么办?

假如你有2台MacBook,一台在家,一台在公司。在家的hexo本地环境都搭好了,markdown文件等等也都放在本地source下的_posts文件夹里了。但是我过2天又想有个新文章发布,这时候电脑在公司,那么该怎么办? 把家里…

深入理解JS中的this

1、浅谈this 1.1、调用位置 在学习this的绑定过程之前,首先要理解调用位置,即函数在代码中被调用的位置,因此我们需要分析调用栈,看以下代码 function baz(){// 当前调用栈是baz// 因此调用位置就是全局作用域console。log(&qu…

设置DevC++支持c++11标准

1.点击编译选项 2. 设置语言标准 3.点击确认 4.测试代码 使用auto成功 测试!

关于git的一些常见操作整理

1.git从remote/a下取了一个a分支 想切换到remote/b分支同时建立本地b分支 怎么操作? 要从远程仓库(remote)的一个分支(例如remote/a)切换到另一个分支(例如remote/b)并在本地建立对应的分支&am…

C#的LINQ to XML 类中使用最多的三个类:XElement、XAttribute 和 XDocument

目录 一、XElement 类 1.使用 XElement 类创建一个 xml 文档 (1)示例源码 (2)xml文件 2.使用LINQ to SQL或者LINQ to Object获取数据源 (1)示例源码 (2)xml文件 3.XElement …

【源码解析】Spring Bean定义常见错误

案例1 隐式扫描不到Bean的定义 RestController public class HelloWorldController {RequestMapping(path "/hiii",method RequestMethod.GET)public String hi() {return "hi hellowrd";}}SpringBootApplication RestController public class Applicati…