array方法总结

本文全面总结了JavaScript数组的各种操作方法,包括判断、转化、修改、生成新数组及遍历技巧,帮助开发者清晰区分不同方法的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际开发中,数组是最常见的,数组方法也很多,很多时候容易搞混淆,比如什么情况下返回新数组,什么时候改变当前数组,现在我们来做个总结,方便以后查阅

1.判断是否为数组 Array.isArray

2.将数组参数传入数组  Array.of

3.将类数组转化为数组,比如

需要注意length属性必须要,不然会转化为[]

相当于 console.log([].slice.call(obj)),如果是字符串,则会返回一个个字符组成的数组

Array.from(obj,x=x+1)

注意:不会改变原对象

可以利用其特性数组去重  Array.from(new Set(['a','b','c','a']))

4.Array.prototype可以在数组原型上面添加方法,然后所有的数组都能调用改方法

二改变当前数组,不生成新的数组

1.原型链上的方法----copyWithin方法3个参数,(该数组开始替换的位置,替换值开始位置,结束位置)结束位置不填默认为直到该数组结束位置。

2.原型链上的方法----fill方法,3个参数,(需要替换成的值,替换的开始位置,替换的结束位置)

3.原型链上的方法---pop方法,无参数,删除最后一个参数

4.原型链上的方法---push方法,给数组末尾添加一个元素或者多个元素(注释里面是arr的值)

5.原型链上的方法--reverse,将数组颠倒,第一位排到最后一位,最后一位排到第一位

6.原型链上的方法---shift,将数组第一个元素删除,返回被删除的元素

7.原型链上的方法---sort,按照unicode码进行排序,可以传入函数作为参数

8.原型链上的方法---splice,splice(index,howmany,item1,item2,...,itemx)

参数详解 index--- 必需,整数,规定添加/删除项目的位置,负数从数组结尾规定位置

                howmany  可选,要删除的数量,0为不删除

                itemx       项目中要添加的元素

9.原型链上的方法---unshift()将一个或多个元素添加到数组的最前面

三,不改变当前数组,生成新的数组

1.原型链上的concat,用于合并2个或多个数组

2.原型链上的方法---indexOf(),用来判断该元素是否在数组里面,返回值为数组中该元素第一次出现时的下标,如果不存在就是-1

语法  array.indexOf(searchElement,fromIndex)

参数,searchElement被查找的元素(必选),fromIndex开始查找的位置(可选)

3.原型链上的方法---includes   includes(searchElement,fromIndex)

返回为true / false

4.原型链上的方法lastIndexOf(searchElement,fromIndex)

fromIndex为从0开始到下标为fromIndex的元素里面找到最后一个值为searchElement的下标

5.原型链上的方法join------将数组或者类数组转换为字符串,空数组转为空字符串

join(str)  str参数可选,不选默认用,隔开

6.原型链上的方法---slice,浅拷贝,slice(begin,end)  不会改变原数组

这里面有一个坑,如果数组里面有引用类型,当改变原数组中引用类型里面的值时,浅拷贝的数组会跟着变,当前拷贝的数组里面引用类型改变时,原数组也会跟着变。

7.toString方法,可以将数组转换为用逗号隔开的字符串,说join方法类似,不过不能像join一样定义隔开符

注意:当数组和字符相加时,会自动调用toString方法

8原型链上的方法---toLocalString,将数组里面的各个元素转换为字符串,并且用逗号隔开,可传参数

四,遍历数组(不改变原数组)

1.forEach   arr.forEach((val,index,arr)=>{},thisValue)

这种情况需要注意下哈

当val===22时,由于shift改变了数组,导致数组第一项去掉,变成了新的数组[55,77,223],这时第一项已经遍历了,因此就从第二项77开始遍历。

2.every遍历,返回值2个true/false,需要数组中的每一个元素都满足该条件,才会返回true

3.some遍历,返回值true/false,需要数组某一个满足条件就能返回true

4.filter,将原数组通过某种过滤条件选出符合条件的元素组成一个新的数组

5.map,将原数组通过某个规则,将每个元素生成新的元素,然后组成个新的数组

6.reduce   reduce(callback(total,currentvalue,currentIndex,arr),initialvalue)

total,必需,初始值或者上一次回调返回的值,如果initialvalue存在,那么就是初始值

initialvalue,不存在就是数组的第一个元素

currentvalue,如果是initialvalue不存在就是下标为1的元素,如果有,则是下标为0的元素

currentIndex,同上

arr,可选 调用reduce方法的数组

7.reduceRight 是从右边开始相加

8.find()  findIndex() 一个是返回该条件 的值,一个是返回该条件的下标   不符合就是undefind  -1

参数与map,every等参数相同

9.扩展es6

1.keys()   对键名的遍历

2.values()对键名的遍历

3.entries()对键值对的遍历

ok,数组就先总结到这里啦,一般项目中够用啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值