Skip to content

Latest commit

 

History

History
50 lines (29 loc) · 1.46 KB

set 和 map 基本用法和区别.md

File metadata and controls

50 lines (29 loc) · 1.46 KB
let str = 'aaabbbcccdddeee'

const arr = str.split('')// 字符串转数组

const set = new Set(arr);// 数组转set
set.add(88888)
set.delete('a')

console.log(set.has(88888), set.has('a'), '<<<<<<<<=====')


for(let s of set){
    console.info(s,'$$$')
}

console.log(set, '%%% 后面俩是等价的', [...set], Array.from(set))// set 转 数组, set 本身不是数组,不能按数组的方式操作


console.log(set.keys(), set.values(), set.entries(),'<<< 前面三个都是迭代器, 都不是数组')
console.log(Array.isArray(Object.keys({s:1})))// Object.keys, Object.values(), Object.entries() 返回的是数组


for(let e of set.entries()){ // 迭代器只能通过迭代的方式取值, 也可以转成数组
    console.log(e, '<====')// 返回的是数组类似这种[1, 1]
}


let map = new Map();
map[1] = 111
console.log(map[1])// 这些用法跟object 一样

map.set(1, '222')

console.log('-----------------')
console.log(map.has(1))
map.delete(1)// 类似 object 的delete 语法 var o = {key : 111};   delete o[key];
console.log(map.has(1))


console.log(map.get(1), '<<<--map')// map 和 object 很类似, 不过map 有size object 没

console.log(map.keys(), map.values(), map.entries(), '<<<===map') // 以上全部都是map 的迭代器, 只能迭代取值, 也可以转成数组

// https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

// https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set