数组的常用方法
总结了js中数组的一些的常用方法,非常全的o☀️,大家可以参考一下,觉得有用的话可以收藏一下❤️
- 数组特点
- 数组是一种特殊的数据结构,用于储存一组数据的集合(即可以用一个变量储存多个数据)
- 数组中的数据是有顺序的,吗,每一项数据都有自己的索引值,索引值是从0 开始的
- 数组是一种特殊的对象,因此对象的方法数组也有
js创建数组的方法
- 直接字面量
var arr = [1,2,3,4];
- 构造器构造
var arr = new Array(1,2,3,4); // arr = [1,2,3,4];
var arr1 = new Array(10); // arr1 = [empty*10];
var arr2 = Array(1,2,3,4); //arr2 = [1,2,3,4]
- Array.of
var a = Array.of(3,11,8); // [3,11,8];
var a = Array.of(3); //[3];
- Array.from
var obj = {
0 : 1,
1 : 2,
2 : 3,
length : 3
};;
var arr = Array.from(obj); // arr = [1,2,3];
以上方法的特点:
- 构造器构造的数组,如果构造函数的参数传递一个数字代表的是数组的数组的长度,数组每一项默认为empty
- Array.of 是返回所有参数组成的数组
,如果没有参数则返回一个空数组。Array出现的目的是为了解决构造器中因参数个数不同,导致的行为差异的问题。 - Array 是将类数组转换为数组的方法。
数组的的常用方法
添加数组的方法
-
push 在数组的最后插入数据
-
unshift 在数组的最前面插入数据
-
splice 在数组的中间替换数据
(targetIndex , deleteLength,insertData )
(插入/删除/替换数据的位置,删除数据的长度,要在这个位置上插入的数据)
如果传递一个参数,代表删除数据,从该位置开始删除把后面的数据全部删除 -
直接赋值
删除数组的方法
- pop
- unshift
- splice
- 修改数组的的长度
修改数组的方法
- splice
- 直接赋值 arr[index] = targetData
数组遍历的方法
es5
- forEach
- map
- filter 返回所有符合条件的数据(组成新数组)
- every 判断所有项是否符合条件 如果是返回true 否则返回false
- some 判断是否存在符合条件的项 如果存在返回true 否则返回true
- reduce (function (prevData.current,index,self){},initValue)
preveData: 代表上一次执行 function 的返回值
如果是第一次执行 function 那么它的值为initValue
current:代表当前执行 function 的时候,遍历到数组当中的那个数据
index 代表当前数据的索引值
self 代表当前便利的数组是哪个
es6
- find (function(){return 找到数据的条件}); 查找数组中第一个符合条件的数据
- findIndex (function(){return 找到数据的条件}) 查找数组中第一个符合条件的数据的索引值
- keys () 返回索引值的集合
- values() 返回所有值的集合
- entries() 返回所有key和value值的集合 二维数组
其他方法
数组中查找数据的方法
- indexOf() 查找数据是够存在当前数组中,如果是的话返回所在位置的索引值,如果不在的话返回 -1
- lastIndexOf() 和 indexOf 功能相同,区别是从后往前查找
合并数组的方法
- cocat() 合并多个数组,且不是改变原数组
- es6 扩展运算符 ‘…’
var a = [1,2,3,4];
var b = [0,5...a,7]; // b = [0,5,1,2,3,4,7];
数组排序
- sort(function(a,b){return > 0 代表a,b 不交换位置, < 0 代表交换位置,会改变原数组})
数组拼接成字符串的方法
- join
- toString
- toLocalString
数组翻转
- reverse 数组反转 ,会改变原数组
判断数组是否包含某个数据
- includes 包含返回true ,不包含返回false
截取数组中部分连续数据
- slice (start,end) 在不修改数组的情况下,截取部分连续的数据
填充数组
- fill(value,start,end) 填充数组中聪start 到 end索引值的数据为value
复制数组中某段连续的数据到某个位置
- copyWinhIn(targetIndex,start,end) 将数组中的start索引值到end索引值复制一遍到targetIndex位置开始连续的几个数据处
会改变原数组
以上方法中改变数组的方法
push,pop ,shift,unshift,splice,sort,reverse,copyWthin,fill
以上方法中不改变数组的方法
slice,jion,concat,indexOf,lastIndexOf,includes,tostring,toLocalString
哪里有我理解的不对的,或者写错的地方,还劳烦小伙伴们你帮我指出来😗⭐️⭐️⭐️