ES6
// Map使用
const arr = [
{key: 3, val: 'bar'},
{key: 5, val: 'world'}
];
const result = arr.map(i => [
i.val,
i.key
]);
const ze_map3 = new Map(result);
console.log(JSON.stringify([...ze_map3]));
console.log(ze_map3);
// 生成器
function * oneDigitPrimes (arr) {
for (const v of arr) {
yield v;
}
}
let arrData = [
1,
2,
3,
4,
5
];
let primesOb = oneDigitPrimes(arrData);
console.log(primesOb);
console.log(arrData);
console.log(...new Array(arrData)[Symbol.iterator]());
while (primesOb.next().value) {
// primesOb.next().done
// 通过return提前结束生成器
// console.log(primesOb.return("name2")) // {value: 'name2', done: true}
console.log(1);
}
console.log([...oneDigitPrimes(arrData)]);
// 迭代器
[Symbol.iterator] () {
// do something
next();
{
return {done: true};
},
// 为了方便起见,让迭代器本身也可迭代
[Symbol.iterator]() { return this;}
}