摘要:总之,是用来循环带有字符串的对象的方法。循环里引入了一种新的循环方法,它就是循环,它既比传统的循环简洁,同时弥补了和循环的短板。
forEach 循环
JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的:
for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); }
自从 JavaScript 5 起,我们开始可以使用内置的 forEach 方法:
myArray.forEach(function (value) { console.log(value); });
写法简单了许多,但也有短处:你不能中断循环(使用 break 语句或使用 return 语句)。for…in 循环
JavaScript里还有一种循环方法:for...in。
for...in 循环实际是为循环可枚举(enumerable)对象而设计的:
var obj = {a:1, b:2, c:3}; for (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]); } // 输出: // "obj.a = 1" // "obj.b = 2" // "obj.c = 3"
你也可以用它来循环一个数组:
for (var index in myArray) { // 不推荐这样 console.log(myArray[index]); }
不推荐用 for...in 来循环一个数组,因为,不像对象,数组的 index 跟普通的对象属性不一样,是重要的数值序列指标。
总之, for...in 是用来循环带有字符串key的对象的方法。
for…of 循环JavaScript6里引入了一种新的循环方法,它就是 for...of 循环,它既比传统的 for 循环简洁,同时弥补了 forEach 和 for-in 循环的短板。
我们看一下它的 for...of 的语法:
for (var value of myArray) { console.log(value); }
for...of 的语法看起来跟 for...in 很相似,但它的功能却丰富的多,它能循环很多东西。
for...of 循环使用例子:
循环一个数组(Array):
let iterable = [10, 20, 30]; for (let value of iterable) { console.log(value); } // 10 // 20 // 30
我们可以使用 const 来替代 let,这样它就变成了在循环里的不可修改的静态变量。
let iterable = [10, 20, 30]; for (const value of iterable) { console.log(value); } // 10 // 20 // 30
循环一个字符串:
let iterable = "boo"; for (let value of iterable) { console.log(value); } // "b" // "o" // "o"
循环一个类型化的数组(TypedArray):
let iterable = new Uint8Array([0x00, 0xff]); for (let value of iterable) { console.log(value); } // 0 // 255
循环一个Map:
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]); for (let [key, value] of iterable) { console.log(value); } // 1 // 2 // 3 for (let entry of iterable) { console.log(entry); } // [a, 1] // [b, 2] // [c, 3]
循环一个 Set:
let iterable = new Set([1, 1, 2, 2, 3, 3]); for (let value of iterable) { console.log(value); } // 1 // 2 // 3
循环一个 DOM 集合
循环一个 DOM 集合,比如 NodeList,之前我们讨论过如何循环一个 NodeList,现在方便了,可以直接使用 for...of 循环:
// Note: This will only work in platforms that have // implemented NodeList.prototype[Symbol.iterator] let articleParagraphs = document.querySelectorAll("article > p"); for (let paragraph of articleParagraphs) { paragraph.classList.add("read"); }
循环一个拥有可枚举属性的对象
for...of 循环并不能直接使用在普通的对象上,但如果我们按对象所拥有的属性进行循环,可使用内置的 Object.keys() 方法:
for (var key of Object.keys(someObject)) { console.log(key + ": " + someObject[key]); }
循环一个生成器(generators)
我们可循环一个生成器(generators):
function* fibonacci() { // a generator function let [prev, curr] = [0, 1]; while (true) { [prev, curr] = [curr, prev + curr]; yield curr; } } for (let n of fibonacci()) { console.log(n); // truncate the sequence at 1000 if (n >= 1000) { break; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100570.html
摘要:日常开发中我们难免需要对数组和对象进行遍历,今天抽空来总结下遍历数组和对象常用的方法。使用遍历对象注只能遍历出自身可枚举的属性,而不能遍历出原型链上面的属性。 日常开发中我们难免需要对数组和对象进行遍历,今天抽空来总结下遍历数组和对象常用的方法。 Javascript遍历数组总结 我们定义一个数组 var arr = [2,4,6]; 1.使用for循环遍历 var lengt...
摘要:主要用于枚举对象数组遍历效率最低的方法。当前数组元素的值。传递给函数的初始值注意对于空数组是不会执行回调函数的。 前言 PS: 2018/04/26 优化一下排版,重新梳理一下方法,补充一些信息,删除JQuery库用法,只讲解Javascript自带的, for in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。主要用于枚举对象, 数组遍历效率最低的方法。 va...
摘要:首次调用回调函数时,和可以是两个值之一。否则返回张三男王小毛男李四男李四返回结果为李四男方法李四对于数组中的每个元素,方法都会调用一次回调函数采用升序索引顺序,直到有元素返回。 数组遍历方法 1.for循环 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 for(var j = 0,j < arr.length;j++) { //执行代码 ...
摘要:如果省略,则将用作值返回值如果函数为所有数组元素返回,则为否则为。不为数组中缺少的元素调用该回调函数。数组元素的数字索引。方法会为中的每个元素调用函数,直到返回,或直到到达数组的结尾。 这一部分应该放在《JavaScript处理数组函数总结》里面的,但是。。。。。。没有但是。 1. for for循环最常用的地方是利用索引来遍历数组: var arr = [Microsoft,Goog...
摘要:数组原型提供的方法非常之多,主要分为三种直接修改原数组原数组不变,返回新数组数组遍历方法直接修改原数组的删除一个数组中的最后的一个元素,并且返回这个元素添加一个或者多个元素到数组末尾,并且返回数组新的长度删除数组的第一个元素,并返回这个元素 Javascript数组原型提供的方法非常之多,主要分为三种: 直接修改原数组 原数组不变,返回新数组 数组遍历方法 直接修改原数组的API ...
阅读 3754·2021-10-12 10:12
阅读 1412·2021-10-11 10:58
阅读 2181·2021-10-09 10:01
阅读 2503·2021-09-24 09:48
阅读 2668·2021-09-09 11:38
阅读 3491·2019-08-30 15:44
阅读 1698·2019-08-30 14:22
阅读 488·2019-08-29 12:42