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()]);

 

posted @ 2022-07-07 19:29  吃惊夜夜  阅读(148)  评论(0编辑  收藏  举报