1.iterator在数组中的运用
var arr=[1,2,3,4,5]
console.log(arr);
let ite=arr[Symbol.iterator]()
console.log(ite);
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
2.给对象添加一个iterator接口
let obj = {
name: 'Jack Zhang',
age: 37,
job: 'singer'
}
let obj1 = {
name: 'Lucy',
age: 38,
job: 'host'
}
obj[Symbol.iterator] = function () {
let v = Object.values(obj);
let index = 0;
return {
next() {
if (index < v.length) {
return { value: v[index++], done: false }
} else {
} return { value: v[index++], done: true }
}
}
}
let ite = obj[Symbol.iterator]();
console.log(ite);
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
console.log(ite.next());
Object.prototype[Symbol.iterator] = function () {
let v = Object.values(this);
let index = 0;
return {
next() {
if (index < v.length) {
return { value: v[index++], done: false }
} else {
} return { value: v[index++], done: true }
}
}
}
for (var v of obj) {
console.log(v);
}
for (var v of obj1) {
console.log(v);
}