前端算法复习之数组篇(持续更新)

211 阅读2分钟
 数组是算法复习的基础,因为在JS中是不存在栈与队列这种数据结构的.我们只能通过数组的API来模拟实现栈与队列

基础

常用的数组API等玩意

创建数组

一维数组

const list = new Array()

带长度

const list = new Array(length)

带默认值

const list = new Array(length).fill(number)

二维数组

const list = new Array(length).fill(number).map(()=> new Array(length).fill(numer))

循环

for

for(let i = 0; i < list.length; i++)

forEach

list.forEach((item,index)=>{})

map

const newlist = list.map((item,index)=>{})
// map方法会根据你传入的函数逻辑对数组中每个元素进行处理,返回一个全新的数组

数组是特殊的对象,所以也可以用下面的两种方法

for-in

//for-in语句是一种严格的迭代语句,用于枚举**对象**中的**非符号键属性**
//如果用于数据则会输出索引值
//由于对象的属性是无序的,所以for-in语句不能保证返回对象属性的顺序,如果要迭代的变量是Null或者undenfined,则不执行,

for-of

// for-of语句是一种严格的迭代语句,用于遍历可迭代**对象**的**元素**
// 如果用于数组则会输出数组元素
// 循环顺序:可迭代对象的next()方法产生值得顺序迭代元素

添加元素

添加到头部

// unshift
list.unshift(number)

添加到尾部

// push
list.push(item)

添加到指定位置

// splice
list.splice(index,howmany,item1,……,itemx)
splice用于向数组中添加、删除元素,然后返回被删除的元素。如果只有两个参数,就是进行删除
        index----操作的位置
        howmany----从操作的位置开始要删除的数量,如果为0,则不进行删除
        item1,……,itemx----向数组中添加的新元素

删除元素

删除头部元素

// shift
删除数组头部元素、并返回该元素
list.shift(item)

删除尾部元素

//pop
//删除尾部元素,并返回该元素
list.pop()

删除指定位置

 // splice()
 // 添加那里有

实现一个栈

栈的特点:先进后出
利用的api
    入栈:push()
    出栈:pop()

实现一个队列

队列的特点:先进先出
利用的api
    入队:push()
    出队:shift()

算法

二分查找

移除元素