ES6 中新增的存储数据Set 储存的数据必须是唯一的,如果重复,他会自动帮你过滤掉
// Set 可遍历的对象
let s = new Set()
// let s = new Set([1, 2, 3, 4])
// s.add('hello')
// s.add('goodbye')
s.add('hello').add('goodbye').add('hello')
// 删除指定数据 && 数据的清空
s.delete('hello')
s.clear()
// 查找
console.log(s.has('hello2'), s.size)
// get 所有的 keys values 键值对
console.log(s.keys())
console.log(s.values())
console.log(s.entries())
s.forEach(item => {
console.log(item)
})
for (let item of s) {
console.log(item)
}
//没有改操作,如果需要就先删除在添加
ES 6 中新增的存储数据MAP 字典, key类型可以是任意类型,键的顺序是set的顺序遍历的,性能更有优势
// let map = new Map([[1, 2], [3, 4]])
let map = new Map()
let map1 = new Map([[1,2],[3,4]]); //键值对
map.set(10, 2)
map.set(3, 'value-4')
map.set(1, 'value-3')
// 删除
map.delete(1)
map.clear()
console.log(map.size)
console.log(map.has(2))
console.log(map.get(1))
console.log(map.keys(), map.values(), map.entries())
// 遍历
map.forEach((value, key) => {
console.log(value, key)
})
for (let [key, value] of map) {
console.log(key, value)
}
let o = function () {
console.log('o')
}
map.set(o, 4)
console.log(map.get(o))
对象的复制
const target = {
a: {
b: {
c: {
d: 9
}
},
e: 5,
f: 6,
h: 10
}
}
const source = {
a: {
b: {
c: {
d: 1
}
},
e: 2,
f: 3
}
}
Object.assign(target, source) // 浅复制,值类型,替换,引用类型,指针复制(指针指向变化)
// null undefined
//
console.log(target)
// WeakSet,WeakMap
学习视频记录
网友评论