For each...in / For...in / For...of 的解释和例子

for each...in 语句在对象属性的所有值上迭代指定的变量。对于每个不同的属性,执行一个指定的语句。

语法:

for each (variable in object) {
  statement
}

参数:

variable
用来遍历属性值的变量,前面的 var关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.
object
该对象的属性值会被遍历.
statement
遍历属性值时执行的语句. 如果想要执行多条语句, 请用( { ... }) 将多条语句括住.

 

一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法.不过,大部分的用户自定义属性都是可遍历的.

警告:永远不要使用for each...in语句遍历数组,仅用来遍历常规对象。

例子

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};

for each (var item in obj) {
  sum += item;
}

print(sum);

就会输出"26",也就是5+13+8的值

例子摘自https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for_each...in

for...in 以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。

语法:

for (variable in object)
{ ... }

参数:

variable
在每次迭代时,将不同的属性名分配给 变量
object       被迭代其枚举属性的对象。 for...in不应该被用来迭代一个下标顺序很重要的 array。 因为 for...in 并不能够保证返回的是按一定顺序的索引,但是它会返回所有可枚举属性,包括非整数名称的和继承的。 例子           var obj = {a:1, b:2, c:3}           f or (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]);                }
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
例子 摘自 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in#Description

 

for...of 语句创建一个循环遍历可迭代对象(包括内置的字符串、数组,例如类数组参数或NodeList对象、TypedArray、Map和Set以及用户定义的迭代),调用一个定制的迭代钩子,并用语句执行对象的每个不同属性的值。

 

语法:

 

for (variable of iterable) {
  statement
}

ariable:

在每次迭代中,将不同属性的值赋给变量。

iterable:

对象,其可迭代属性被迭代。

例子:

迭代数组

let iterable = [10, 20, 30]; for (let value of iterable) { value += 1; console.log(value); } // 11 // 21 // 31

如果不重新分配块内的变量,可以使用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
例子摘自https://devdocs.io/javascript/statements/for...of

 

转载于:https://www.cnblogs.com/HeavyMetalChao/p/10154232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值