一文读懂javascript中常见的数据结构和对应的处理方法

一文读懂javascript中常见的数据结构和对应的处理方法

文章目录

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', &#

相关推荐

【建社80周年·走近先贤】纪念“两弹元勋”邓稼先同志诞辰101周年
多乐斗地主
365充值真人注册

多乐斗地主

📅 06-29 👁️ 1717
内心os是什么意思?探讨网络用语‘os’的含义
365商城官网

内心os是什么意思?探讨网络用语‘os’的含义

📅 06-28 👁️ 1302