JS数据结构基础实现
# ES6解构
利用扩展符...
进行解构赋值
// 数组的解构[赋值]
let [a,b,c] = [1,2,3];
console.log(a,b,c);
// 对象的解构[赋值]
let person = {
name: "张三",
age: 20
};
let {name, age} = person;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# Hash表
# Set[ES6新增数据结构]:
const set = new Set([1,2,3,4,5]);
set.has();// 是否存在数据
set.add();// 添,还可以链式添加 s.add(1).add(2).add(3); // 增
set.delete(); // 删
set.size; // 返回长度 【注意这里不是length】
set.clear(); // 删全部
//set结构是可遍历的,故可以使用ES5新增foreach方法[demo: 依次打印出hello world!]
let set = new Set();
set.add("hello").add("world").add("!");
set.forEach((item, index, origin) => console.log(item));
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Map
const map = new Map([key,value]);
map.has();// 是否存在数据
map.set(key,value); // 添加
map.get(key); // 根据key得到value
map.size(); // 返回长度
map.delete(); // 删
map.clear(); // 删全部
// map也是可遍历的,故可以是用foreach方法
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 矩阵
memo = [];
// 矩阵的创建:通过数组实现,索引[行][列]
for(let i=0;i<m;i++){
memo.push(Array(n).fill(0));// 全0矩阵
memo.push(Array(n).fill(null)); // 全null矩阵
};
// 赋初值
for(let i = 0; i<m ;i++){
memo[i][0] = 1;
};
for(let j = 0; j<n ;j++){
memo[0][j] = 1;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 字符相关
模板子符串[ES6新增]
let name = "张三"; let sayHello = `hello,my name is ${name}`;
1
2实例方法
// str检测 let str = "Hello world!"; str.startsWith('Hello');// true str.endsWidth('!');// true // str重复 "xxx" => 'x'.repeat(3);
1
2
3
4
5
6
7
编辑 (opens new window)
上次更新: 2022/04/06, 15:04:00