let createIterator = items =>{
let i = 0;
return {
next () {
let done = (i >= items.length);
let value = !done ? items[i++] : undefined;
return {
done,
value
}
}
}
}
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
function *createIterator(name){
yield `Hi!${name} How are you?`;
yield `${name} , I'm fine thank you , and you?`;
yield `I'm fine too`;
}
let iterator = createIterator('journey');
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
function *createIterator(...items){
for(let i = 0 ; i < items[0].length ; i++){
yield items[0][i];
}
}
let iterator = createIterator([1,2,3,4,5,6]);
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
class Person{
//构造
constructor(name,age){
this.name = name;
this.age = age;
this.address = [];
}
get fn(){
return this.address;
}
set fn(address){
this.address.push(address);
}
toString(){
return (`${this.name} 的年龄是 ${this.age} 岁 来自${this.address}`);
}
static isPerson(){
console.log('是人')
}
}
let person = new Person('journey',25);
person.fn = '江苏省';
console.log(person);
console.log(person.toString());
console.log(person.hasOwnProperty('name'));
console.log(person.hasOwnProperty('age'));
console.log(person.hasOwnProperty('toString'));
console.log(person.__proto__.hasOwnProperty('toString'));
class Person {
constructor(name , age){
this.name = name;
this.age = age;
}
intro (){
return `${this.name} , ${this.age}`;
}
}
class Chef extends Person{
constructor(name,age){
super(name,age );
}
}
let journey = new Chef('journey','25');
console.log(journey);
let setV = new Set();
[1,2,3,4,5,6,7,1,2,4].forEach(v => setV.add(v));
for(let i of setV){
console.log(i);
}
let items = new Set([1,2,4,1,6,7,8]);
console.log(items.size);
console.log(...items);
console.log(items.has(1));
let maps = new Map();
let items = [
['name','journey'],
['age','25']
];
items.forEach(
([key,value]) => maps.set(key,value)
)
for(let item of maps){
console.log(item);
}
for(let value of maps.values()){
console.log(value);
}
for(let key of maps.keys()){
console.log(key);
}
for(let [key,value] of maps.entries()){
console.log(key ,value);
}
for(let [key,value] of maps){
console.log(key,value);
}
maps.set('address','jiangsu');
console.log(...maps.keys());
console.log(...maps.values());
console.log(...maps.entries());
console.log(...maps);
console.log(maps);
//Map 转为对象
function strMapToObj(strMap) {
let obj = Object.create(null);
for (let [k,v] of strMap) {
obj[k] = v;
}
return obj;
}
//对象转为Map
function objToStrMap(obj){
let strMap = new Map();
for(let k of Object.keys(obj)) {
strMap.set(k , obj[k]);
}
return strMap;
}
console.log(objToStrMap({yes: true , no : false}));
//Map转为JOSN
function strMapToJson(strMap) {
return JSON.stringify(strMapToObj(strMap));
}
let myMap = new Map().set('yes',true).set('no',false);
console.log(strMapToJson(myMap));
//JSON 转为 Map
function jsonToStrMap(jsonStr) {
return objToStrMap(JSON.parse(jsonStr));
}
console.log(jsonToStrMap('{"yes": true, "no": false}'));