1.14 迭代器Interator的用法
1.Iterator是es6引入的一种新的遍历机制。两个核心:
(1) 迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。
(2) 迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。
使用迭代
1.使用Symbol.iterator创建一个迭代器
2.调用next方法向下迭代,next方法会返回当前的位置
3.当done为true时则遍历结束
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>1.14 迭代器Interator的用法</title>
</head>
<body>
<script>
// 1.Iterator是es6引入的一种新的遍历机制。两个核心:
// (1) 迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。
// (2) 迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。
// 使用迭代
// 1.使用Symbol.iterator创建一个迭代器
const items = ['one','two','three'];
console.log(items);
const it = items[Symbol.iterator]();
console.log(it);
// 2.调用next方法向下迭代,next方法会返回当前的位置
const nextEle = it.next();
// 3.当done为true时则遍历结束
console.log(nextEle); // 输出:{value: 'one', done: false} done:false表示遍历没结束。
// 可迭代的数据结构
// Array String MaSet
// 但是对象是不能迭代
// 跟迭代紧密相关的就是for...of循环
// for(let item of items){
// console.log(item);
// }
// 将对象转换成数组
const arrayLink = {length: 2, 0: "zero", 1: "one"}
console.log(Array.from(arrayLink));
for(let item of Array.from(arrayLink)){
console.log(item);
}
</script>
</body>
</html>