文章目录
javascript中常见的数据结构和对应的处理方法
1. JS原生支持的数据结构
1.1 Array
1.2 Set/WeakSet/Map/WeakMap
1.3 对象Obeject
2. 非javascript原生支持的数据结构,可以用原生数据结构模拟
2.1 栈 Stack
2.2 队列 Queue
2.3 链表 LinkList
1.4 树Tree
1.5 其他数据类型,包括:图、撒列表、等,自行研究一下
javascript中常见的数据结构和对应的处理方法
PS:有些数据结构js本身并没有原生支持,但是我们可以通过利用Array、Object等进行模拟
1. JS原生支持的数据结构
1.1 Array
数组是最基本的数据结构,也是原生就支持的数据结构,是用连续的内存空间保存数据,每个元素都可以通过索引值来访问,索引值从0开始,属于有序列表
let array=['a','b','c']
console.log(array[1])//b
Array常用的方法
push(…[]),在数组的末尾添加一个或者多个元素,并返回数组的长度
let array=['a','b','c']
const arrayLength=array.push('d','e');
console.log(array)//[ 'a', 'b', 'c', 'd', 'e' ]
console.log(arrayLength)//5
pop(),删除数组的最后一个元素,并返回该元素的值
let array=['a','b','c']
let deletedLast=array.pop()
console.log(array)//[ 'a', 'b' ]
console.log(deletedLast)//c
shift(),删除数组的第一个元素,并返回该元素的值,与pop对应
let array=['a','b','c']
let deleteFirst=array.shift()
console.log(array)//[ 'b', 'c' ]
console.log(deletedLast)//a
unshift(),在数组的额开头添加一个或者多个元素,并返回修改后的数组的长度,与shift的操作相反
let array=['a','b','c'];
let newLength=array.unshift('d','e');
console.log(array)//[ 'd', 'e', 'a', 'b', 'c' ]
console.log(newLength)//5
slice(start,end),返回一个从索引值开始的数组片段,但不改变原数组
let array=['a','b','c','d','e'];
let sliceArray=array.slice(1,4)//截取索引值[1-4)的片段,)代表不包括4
console.log(array)//[ 'a', 'b', 'c', 'd', 'e' ]
console.log(sliceArray);//[ 'b', 'c', 'd' ]
sliceArray.push('f','g')
array.push('1','2')
console.log(array)//['a', 'b', 'c','d', 'e', '1', '2']
console.log(sliceArray);//[ 'b', 'c', 'd', 'f', 'g' ]
//两个数组互补干扰,所以适合用于浅拷贝
splice(start,howMany,…replaceArray),用于添加或者删除数组中的元素,返回添加或者删除的元素,并且会改变原数组
let array=['a','b','c','d','e'];
let spliceArray=array.splice(1,3)//从index=0开始,删除3个元素
console.log(array)//[ 'a', 'e' ]
console.log(spliceArray)//[ 'b', 'c', 'd' ]
let array2=['a','b','c','d','e'];
let replaceArray=['f','g']
let spliceArray2=array.splice(1,3,...replaceArray)//从index=0开始,删除3个元素,并用新的元素去填充被删除的部分,可以理解为把新的...replaceArray插入到被删除元素的片段之间,元素可以是1个,也可以正好等于被删除的元素个数,也可以是更多
console.log(array)//[ 'a', 'f', 'g', 'e' ]
console.log(spliceArray)//[ 'b', 'c', 'd' ]
contact(array1,array2,…)合并一个或多个数组,并返回一个新数组,原数组保持不变
let array1=['a','b']
let array2=['d','e']
let array3=['f','g']
let c=array1.concat(array2,array3)
console.log(c)//[ 'a', 'b', 'd', 'e', 'f',