数组的常用方法

88 阅读4分钟

ES5:

增加:
     push:从后面添加元素,返回值为添加完后的数组的长度
     unshift:向数组的开头添加一个或更多元素,并返回新的长度
 删除:
     pop:从后面删除元素,只能是一个,返回值是删除的元素
     shift:从前面删除元素,只能删除一个 返回值是删除的元素
 排序:
     sort 比较函数的回调函数应该具有两个参数 ab,
     return a-b; // 从小到大排序
     return b-a; // 从大到小排序
 其他:
     reverse():数组反转
     splice(i,n) 从i(索引值)(自己也删)开始删除n个元素。返回值是删除的元素 改变原数组
     splice(i,n,'aa')    // 第三个参数是用什么替换
     slice(start,end) 切去索引值start到end的数组,不包含end索引的值,返回新数组 不改变原数组
     concat() 连接两个数组 返回值为连接后的新数组    在后面合并

ES6:

arr.forEach(callback) 遍历数组,无return 即使有return,也不会返回任何值,改变原数组
  callback的参数: 
        value --当前索引的值
        index --索引
        array --原数组

arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组 。
  callback的参数: 
        value --当前索引的值
        index --索引
        array --原数组
                    
arr.filter(callback) 过滤数组,对老数组的过滤,返回一个新的数组
  callback的参数: 
	value --当前索引的值
	index --索引 

arr.every(callback) 据判断条件,数组的元素是否全满足,全满足则返回true 反之false 不改变原始数组
  callback的参数: 
        value --当前索引的值
        index --索引

arr.some(callback) 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
  callback的参数: 
        value --当前索引的值
        index --索引
        
arr.reduce(callback,initialValue)	不设置初始值默认从索引1开始遍历
  callback:(pre,cur,index,arr)
        - pre 上一次调用回调返回的值,或者是提供的初始值
        - cur 本次遍历到的数组成员
        - index 本次遍历到的数组成员的索引
        - arr 数组本身
  initialValue/初始值:作为第一次调用 callback 的第一个参数

arr.reduceRight(callback, initialValue) 
    与arr.reduce()功能一样,不同的是,reduceRight()从数组的末尾向前将数组中的数组项做累加。

arr.includes(数据,索引)	索引可填可不填
    从指定的索引开始,判断arr里有没有指定数据,有返回true,反之false

arr.fill(target, start, end) 使用给定的值,填充一个数组,改变原数组
    参数:  
	target -- 待填充的元素
	start -- 开始填充的位置-索引
	end -- 终止填充的位置-索引(不包括该位置)
        
arr.indexOf()   
	查找某个元素的索引值,用于简单的元素查找
	若有重复的,则返回第一个查到的索引值,若不存在,则返回 -1
                    
arr.lastIndexOf()   
	和arr.indexOf()的功能一样,不同的是从后往前查找

arr.find(callback) 
	找到第一个符合条件的数组成员,找不到返回undefined
	find()对于空数组,函数是不会执行的。find()不会改变原数组
	  callback参数:
	    value   当前的item值
	    index   当前索引
	    arr     原数组
                    
arr.findIndex(callback) 
  找到第一个符合条件的数组成员的索引值 找到返回索引值 找不到返回-1 
  callback参数:
        value   当前的item值
        index   当前索引
        arr     原数组

arr.copyWithin() 
    在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组
        参数:
	target - -必选 表示目标覆盖的开始索引位置
	start --可选 表示开始复制的开始元素索引位置,默认为0.如果为负值,则从右往左读。
		end --可选 表示结束复制的元素索引位置,
	注:不包含最后一个索引元素。默认是Array.length,如果是负值,表示倒数
            
    arr.join(可选的分隔符)
        用于把数组中的所有元素按照一定的规则组成一个字符串。
        返回一个字符串。该字符串是通过把arr的每个元素转换为字符串,然后把这些字符串连接起来,
        在两个元素之间插入可选的分隔符字符串而生成的。
    
	arr1 =  [10, 20, 33, 10, 20, 33, 1, 2, 3]
	arr1.join('-')	"10-20-33-10-20-33-1-2-3"
	arr1.join()	 "10,20,33,10,20,33,1,2,3"


少用:
arr.key()   遍历数组的键名
arr.values()    遍历数组键值
arr.entries()   遍历数组的键名和键值
Array.from():将伪数组变成数组,就是只要有length的就可以转成数组。
Array.of() 将一组值转换成数组,类似于声明数组    '11' -->['11']
toString():把数组转换为字符串