对js数组中的简单理解

对js数组中的简单理解

一、检测数组

1、instanceof

if(value instanceof Array){
}

2、Array.isArray()

if(Array.isArray(value)){
}

迭代器方法:
Array原型上有三个方法检测数组内容

1、key() 数组索引

2、value() 数组值

3、 entries() 数组索引加值

二、复制和填充

ES6新增了两个方法:批量复制的fill()、填充数组的copyWithin()

1、fill()

Array.fill(‘填充值','填充索引)

可以向数组中插入全部或部分相同的值。开始索引用于指定开始填充的位置,是可选的。如果不提供索引,则重头开始一直填充到数组末尾。

填充索引为负数时,则重数组末尾开始计算。

2、copyWithin()

按照指定范围浅复制数组中的部分内容,然后插入指定索引开始的位置

let ints=[0,1,2,3,4,5,6,7,8,9]

//从索引零开始位置复制内容,插入到索引到五的位置

ints.copyWitnin(5); //[0,1,2,3,4,0,1,2,3,4]

//从索引为5的位置开始复制,一直复制到结尾,插入到索引为0的位置

ints.copyWithin(0,5) //[5,6,7,8,9,5,6,7,8,9]

//从索引为0的位置复制到索引为3位置的内容,插入到索引为4的位置

ints.copyWithin(4,0,3)//[0,1,2,3,0,1,2,7,8,9]

三、转换方法

toLocaleString()、toString()、valueOf()

toString():返回由数组每个值等效字符串拼接成的一个逗号分隔的字符串,数组每个值都会调用其toString方法。

valueOf():返回的是数组本身

toLocalString()和toString()差不多,区别是前者数组中的每个值都会调用toLocalString方法。

四、数组中的删除增加

一、栈方法

关键词:尾部、栈

pop:尾部删除

push:尾部添加

栈:先进后出,自然就是尾部操作

二、队列方法

关键词:头部、队列

unshift:头部添加

shift:头部删除

队列:先进先出,头部进行操作

五、排序方法

一、倒序:reverse()

let i=[1,2,3,4,5]
console.log(i.reverse())//[5,4,3,2,1]

二、升序:sort()

升序和倒序同理。

升序也可以做数组查重的方法之一。

sort(a,b)=>a<b?1:a >b?-1:0

上面的写法可以变成大到小的排列

六、操作方法

1、concat()

作用就是连接两个数组

let a=[1,2,3]
let b=[4,5,6]
let c=[]
c=a.concat(b)
console.log(c)//[1,2,3,4,5,6]

2、slice()

会创建一个新数组,不会改变旧数组的内容

slice(),会接收一个或者两个参数。

当只有一个参数的时候,slice()会返回该索引到数组末尾的所有元素

let a=[1,2,3,4]
console.log(a.slice(1))//[2,3,4]

当有两个参数的时候,slice()会返回从开始的索引到结束的索引对应的所有元素,注意:不包括结束索引对应的元素。相当于这种感觉[开始,结束)

let a=[1,2,3,4,5,6]
console.log(a.slice(1,4))//[2,3,4]

3、最强大的数组方法 splice()

会改变原数组的内容

三种功能 删除、插入、替换

删除:需要传两个参数,第一个是开始的位置,第二个是这个位置后的数量

image-20210530104819266

image-20210530105158652

插入:需要穿三个参数,第一个是开始的位置,第二个是位置后的数量,第三个是内容

image-20210530105122676

image-20210530105137345

替换:需要穿三个参数,第一个是开始的位置,第二个是位置后的数量,第三个是内容

image-20210530105540083

image-20210530105555757

七、搜索和位置方法

两种方法:严格相等搜索法、断言函数搜索法

严格相等搜索法:

indexOf()、lastIndexOf()、includes()

这些方法都接收两个参数,查找的元素、开始的位置

indexOf()、lastIndexOf() 都返回要查找元素在数组的位置,没找到就返回-1

image-20210530110814898

image-20210530110826259

返回的都是索引

include()是ES7中的方法,可以用来判断某个元素该数组中存在没有

断言函数:

断言函数返回的值决定相应的索引的元素是否被认为匹配

三个参数:元素、索引、元素本身。元素是当前在数组中搜索的元素,索引是当前元素的索引、数组是正在搜索的数组。返回值为布尔值。

find()、findIndex()

前者返回的是匹配的元素,后者返回的是元素的索引

都从最小索引开始搜索

当找到匹配项后,不会再继续进行查找

八、迭代方法

every()、filter()、forEach()、map()、some()

every()相当于数学关系中的且关系

some() 相当于数学关系中的或关系

filter()和forEach()相似,前者是创建了一个新数组去操作,后者是在原有的数组上去操作。

可用来进行数组去重。可看我另一篇博客

九、归并方法

reduce() 、reduceRight()

都会迭代所有的项,并且在此基础上给出一个最终的返回值。

reduce()从数组的第一项返回到最后一项,reduceRight()相反

都有四个参数:上一个归并值、当前项、当前项索引、数组本身

可用reduce()进行数组的累加操作

image-20210530114033809

image-20210530114041404

posted @ 2021-05-30 11:44  啊方不方  阅读(88)  评论(0编辑  收藏  举报