JavaScript数据结构&算法
1 数据结构
1.1 数组Array
1.2 栈Stack
1.3 队列Queue
1.4 链表LinkedList
1.5 集合Set
js
// new
let mySet = new Set();
// add
mySet.add(1);
mySet.add('hello world');
let o = { a: 1, b: 2 };
mySet.add(o); // add一个对象
mySet.add({ a: 1, b: 2 });
// has
const has = mySet.has(1); // true
const has2 = mySet.has(3); // false
// delete
mySet.delete(2);
// size
const size = mySet.size;
// 迭代1
for(let item of mySet) {
console.log(item)
}
// 迭代2
for(let item of mySet.keys()) {
console.log(item)
}
// 迭代3
for(let item of mySet.values()) {
console.log(item)
}
// Set 转为 Array
const arr = [...mySet];
const arr2 = Array.from(set);
// Array 转为 Set
const set = new Set([1,3,5]);
// 交集 intersection
const intersection = new Set([...mySet].filter(x => set.has(x)));
// 差集 difference
const difference = new Set([...mySet].filter(x => !set.has(x)))
1.6 字典Map
js
// 实例化
const map = new Map();
// 增
map.set('a','aa');
map.set('b', 'bb');
// 查key的存在
map.has('a'); // true
map.has('c'); // false
// 查value
map.get('a');
map.get('b');
// 删
map.delete('b');
// 清空
map.clear();
// 改:就是覆盖
map.set('a', 'aaaaa');