Es6中的Set和Map的数据结构

目录

set数据结构

set介绍

set使用

add添加

delete删除

has判断Set是否有对应的成员

将Set转为数组

Set去除字符串里面的重复字符

Set 四个遍历方法

Map数据结构

Map介绍

Map的使用

Map的set方法

Map的get方法

Map的delete方法

Map的has方法

Map的clear方法

Map的size 属性

Map的4个遍历的方法


set数据结构

set介绍

Ser是ES6提供的新数据结构,它类似于数组。但是成员的值都是唯一的,没有重复

Set本身是一个构造函数,用来生成 set 数据结构 需要在前面加上new

set使用

add添加

var myset = new Set()
//add 添加
myset.add(1)
console.log(myset) // Set(1)

delete删除

var myset = new Set()
//delete删除
myset.delete(1)

has判断Set是否有对应的成员

var myset = new Set()
myset.add(1)
myset.add(2)
myset.add(3)
console.log(myset.has(1)) //返回的布儿值 有返回true 没有返回false

将Set转为数组

var myset = new Set([1,2,3,4,5,6,7])
​
console.log([...myset]) // [1,2,3,4,5,6,7]

Set去除字符串里面的重复字符

var myset = new Set('addsdwi')
​
console.log([...myset].join('')) //adswi

Set 四个遍历方法

   var ss = new Set(['aaa', 'bbb', 'ccc', 'ddd'])
​
      for (let key of ss.keys()) {
        console.log(key)
         // aaa
         // bbb
         // ccc
         // ddd
      }
​
      for (let key of ss.values()) {
        console.log(key)
         // aaa
         // bbb
         // ccc
         // ddd
      }
​
      for (let key of ss.entries()) {
        console.log(key) // ['aaa', 'aaa']
      }
       ss.forEach((key, value) => {
        console.log(key, value)
        // aaa aaa
        // bbb bbb
      })

Map数据结构

Map介绍

键值对 对象 Map

对象的键名 是字符串类型 键---值

Map数据结构 键名可以是任意类型 值-----值

Map类似于键值对(key,value) 对象

Map的使用

Map的set方法

//set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。
const m = new Map();
​
m.set('edition', 6)        // 键是字符串
m.set(262, 'standard')     // 键是数值
m.set(undefined, 'nah')    // 键是 undefined
​
//set方法返回的是当前的Map对象,因此可以采用链式写法
let map = new Map()
  .set(1, 'a')
  .set(2, 'b')
  .set(3, 'c');

Map的get方法

//get方法读取key对应的键值,如果找不到key,返回undefined。
​
const m = new Map();
​
const hello = function() {console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
​
m.get(hello)  // Hello ES6!

Map的delete方法

//delete方法删除某个键,返回true。如果删除失败,返回false
const m = new Map();
m.set(undefined, 'nah');
m.has(undefined)     // true
​
m.delete(undefined)
m.has(undefined)       // false

Map的has方法

//has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
const m = new Map();
​
m.set('edition', 6);
m.set(262, 'standard');
m.set(undefined, 'nah');
​
m.has('edition')     // true
m.has('years')       // false
m.has(262)           // true
m.has(undefined)     // true

Map的clear方法

//clear方法清除所有成员,没有返回值
let map = new Map();
map.set('foo', true);
map.set('bar', false);
​
map.size // 2
map.clear()
map.size // 0

Map的size 属性

//size属性返回 Map 结构的成员总数
const map = new Map();
map.set('foo', true);
map.set('bar', false);
​
map.size // 2

Map的4个遍历的方法

Map.keys():返回键名的遍历器。
Map.values():返回键值的遍历器。
Map.entries():返回所有成员的遍历器。
Map.forEach():遍历 Map 的所有成员。
​
const map = new Map([
  ['F', 'no'],
  ['T',  'yes'],
]);
​
for (let key of map.keys()) {
  console.log(key);
}
// "F"
// "T"
​
for (let value of map.values()) {
  console.log(value);
}
// "no"
// "yes"
​
for (let item of map.entries()) {
  console.log(item[0], item[1]);
}
// "F" "no"
// "T" "yes"
​
// 或者
for (let [key, value] of map.entries()) {
  console.log(key, value);
}
// "F" "no"
// "T" "yes"
​
// 等同于使用map.entries()
for (let [key, value] of map) {
  console.log(key, value);
}
// "F" "no"
// "T" "yes"

你可能感兴趣的:(es6,数据结构,javascript)