ES6 map数据类型
// ES6 map数据类型 const rest = new Map(); // 使用set()方法填充数据 set()方法返回更新后的全部数据; rest.set('name', 'Classico Italiano'); rest.set(1, 'Firenze,Ttaly'); console.log(rest.set(2, 'Lisbon,Portugal')); rest .set('categories', ['Italian', 'Pizzeria', 'Vegetarian', 'Organic']) .set('open', 11) .set('close', 23) .set(true, 'We are open :D') .set(false, 'We are closed :('); // 使用get()方法从map中读取数据 get()方法返回读取的数据; console.log(rest.get('name')); console.log(rest.get(true)); console.log(rest.get(1)); // 使用布尔值作为映射值 const time = 21; console.log(rest.get(time > rest.get('open') && time < rest.get('close'))); // 使用has()方法从map中是否包含此数据 console.log(rest.has('categories')); // 使用delete()方法从map中删除数据 rest.delete(2); console.log(rest); // map也有size属性,显示数据的总数 const arr = [1, 2]; rest.set(arr, 'Test'); rest.set(document.querySelector('h1'), 'Heading'); console.log(rest.size); // 删除map所有数据 // rest.clear(); // map可以用数组和对象来作为映射值 // 直接用数组作为键的话,读取不到,最好创建一个值替代 console.log(rest.get(arr));
const question = new Map([ ['question', 'Whatis the best programming language in the world?'], [1, 'C'], [2, 'Java'], [3, 'JaavaScript'], ['correct', 3], [true, 'Correct ✨'], [false, 'Try again!'], ]); console.log(question); // 将对象转换为map数据类型 console.log(Object.entries(openinghours)); // 利用对象的entries方法可以直接转换成map类型 const hoursMap = new Map(Object.entries(openinghours)); console.log(hoursMap); // 一个检测程序 console.log(question.get('question')); // 将map通过解构的形式实现循环 for (const [key, value] of question) { if (typeof key === 'number') console.log(`Answer ${key}:${value}`); } // 通过get()方法判断布尔值 ,然后通过布尔值取得对于的数据 // const answer = Number(prompt('Your answer')); const answer = 3; console.log(question.get(question.get('correct') === answer)); // 将map转换成数组 console.log([...question]); // console.log(question.entries()); console.log([...question.keys()]); console.log([...question.values()]);