// 实例化一个set const set = newSet([1, 2, 3, 4]); // 遍历set for (let item of set) { console.log(item); } // 添加元素,返回Set本身 set.add(5).add(6); // Set大小 console.log(set.size); // 检查元素存在 console.log(set.has(0)); // 删除指定元素,返回bool let success = set.delete(1); console.log(success); set.clear();
其他遍历方法:由于没有键名,values()和keys()返回同样结果。
1 2 3 4 5 6 7 8 9 10
for (let item of set.keys()) { console.log(item); } for (let item of set.values()) { console.log(item); } for (let item of set.entries()) { console.log(item); }
②Map 常用方法
Map 接口基本和 Set 一致。不同的是增加新元素的 API 是:set(key, value)
1 2 3 4 5 6 7
const map = newMap(); // 以任意对象为 Key 值 // 这里以 Date 对象为例 let key = newDate(); map.set(key, "today"); console.log(map.get(key));
function* foo(x) { var y = 2 * (yield x + 1); var z = yield y / 3; return x + y + z; } var b = foo(5); b.next(); // { value:6, done:false } b.next(12); // { value:8, done:false } b.next(13); // { value:42, done:true }
function* foo(x) { var y = 2 * (yield x + 1); var z = yield y / 3; return x + y + z; } var a = foo(5); a.next(); // Object{value:6, done:false} a.next(); // Object{value:NaN, done:false} a.next(); // Object{value:NaN, done:true}
只有第一次调用 next 函数的时候,输出的 value 是 6。其他时候由于没有给 next 传入参数,因此 yield 的返回值都是undefined,进行运算后自然是NaN。