arr[Symbol.iterator]

arr[Symbol.iterator]每一个数组、伪数组、new Set()、 new Map() 中都有一个Symbol.interator 接口, 每个Symbol.interator中都抛出一个next() 函数, next 中都返回两个属性,一个value, 一个done。

第一种

var arr = ['a', 'b', 'c', 'd', 'e'];
var eArr = arr[Symbol.iterator]();  //此返回的是一个方法可以被for of循环使用
// 浏览器必须支持 for...of 循环
for (let letter of eArr) {
  console.log(letter); // a  b  c  d  e
}

第二种

var arr = ['a', 'b', 'c', 'd', 'e'];
var eArr = arr[Symbol.iterator]();
                                //按照线性顺序 当第一次调用这个方法后==》a,再次调用==>b
console.log(eArr.next().value); // a
console.log(eArr.next().value); // b
console.log(eArr.next().value); // c
console.log(eArr.next().value); // d
console.log(eArr.next().value); // e
function logIterable(it) {
  var iterator = it[Symbol.iterator]();
  // 浏览器必须支持 for...of 循环
  for (let letter of iterator) {
      console.log(letter);
  }
}

// Array
logIterable(['a1', 'b', 'c']);
// a1
// b
// c

// string
logIterable('abc999');
// a
// b
// c
// 9
// 9
// 9
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值