数组方法小结
ES5及之前
1.arr.forEach()
功能:遍历数组,并执行回调函数内的代码
参数:回调函数function(ele){'遍历操作'}
返回值:无
2.arr.filter()
功能:过滤数组
参数:回调函数function(ele){return '判断条件'}
返回值:有,返回一个数组元素都满足判断条件的新数组,不改变原数组
3.arr.map()
功能:遍历的同时,将返回运算的结果
参数:回调函数function(ele){return '有关ele的计算式'}或者Math.sqrt这样的
返回值:运算的结果,不改变原数组且不检测空数组
4.arr.every()
功能:检测数组所有元素是否都符合指定条件(通过函数提供)
参数:回调函数function(ele){return '判断条件'}
返回值:布尔值。如果所有元素都通过检测返回 true,否则返回 false。不改变原数组且不检测空数组。
5.arr.some()
功能:检测数组所有元素是否都符合指定条件(通过函数提供)
参数:回调函数function(ele){return '判断条件'}
返回值:布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
6.arr.unshift()
功能:向数组的开头添加一个或更多元素。
参数:item1,item2, ..., itemX
返回值:添加完后的数组的长度,该方法将改变数组元素的数目。
7.arr.push()
功能:向数组的末尾添加一个或多个元素。
参数:item1, item2, ..., itemX
返回值:添加完后的数组的长度,该方法将改变数组元素的数目。
8.arr.splice()
功能:添加或删除数组中的元素。
参数:index,howmany,item1,.....,itemX, (开始下标,长度,新的元素1,新的元素2...)
index:必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany:可选。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX:可选。要添加到数组的新元素。
例:arr.splice(2,1); //从下标2删除1
arr.splice(2,1,'123'); //将123替换原本下标2长度1
arr.splice(2,0); //无效操作
arr.splice(2,0,'123'); //从下标为2的地方开始插入
返回值:修改后的数组,这种方法会改变原始数组。
9.arr.shift()
功能:把数组的第一个元素从其中删除,并返回第一个元素的值。
参数:无
返回值:| 数组原来的第一个元素的值(移除的元素)。这种方法会改变原始数组。
10.arr.pop()
功能:删除数组的最后一个元素并返回删除的元素。
参数:无
返回值:返回删除的元素。这种方法会改变原始数组。
11.arr.slice()
功能:从已有的数组中返回选定的元素。
参数:start, end
start:可选。规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
返回值:返回一个新的数组,包含从 start(包括该元素) 到 end (不包括该元素)的 arrayObject 中的元素。slice() 方法不会改变原始数组。
12.arr.indexOf()
功能:返回数组中某个指定的元素位置。
参数:item,start
item:必须。查找的元素。
start:可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从数组的首元素开始检索。
返回值:元素在数组中的位置,如果没有搜索到则返回 -1。
13.arr.lastIndexOf()
功能:可返回一个指定的元素在数组中最后出现的位置,从该数组的后面向前查找。
参数:item,start
item:必需。查找的元素。
start:可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从数组的最后一个元素处开始检索。
返回值:出现的最后一个 searchvalue 的位置。
例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");
输出结果:
2
14.arr.reduce()
功能:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。可以作为一个高阶函数,用于函数的 compose。(注意: reduce() 对于空数组是不会执行回调函数的。)
参数:function(total, currentValue, currentIndex, arr), initialValue
function(total,currentValue, index,arr):必需。用于执行每个数组元素的函数。
total:必需。初始值, 或者计算结束后的返回值。
currentValue:必需。当前元素。
currentIndex:可选。当前元素的索引
arr:可选。当前元素所属的数组对象。
initialValue:可选。传递给函数的初始值。
返回值:返回计算结果。
例:
let arr1 = [11, 22, 33, 44];
//累加器 sum 每一次计算后的临时结果
let res = arr1.reduce(function (sum, item) {
return sum + item;
}, 0);//这里的0是sum默认值 若设为'0'则变为字符串的拼接
15.arr.sort()
功能:对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。使用数字排序,你必须通过一个函数作为参数来调用。函数指定数字是按照升序还是降序排列。
参数:回调函数function(a,b){return a-b}(从小到大)return b-a(从大到小)注:这里a,b不是只能取名叫a,b
返回值:对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
16. arr.concat()
功能:连接两个或多个数组。
参数:arrayX,arrayX,......,arrayX
arrayX:必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回值:返回一个新的数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
17.arr.reverse()
功能:颠倒数组中元素的顺序。
参数:无。
返回值:颠倒顺序后的数组。
ES6
1.array.find()
功能:遍历元素,返回通过测试(函数内判断)的数组的第一个元素的值。
参数: 回调函数function(ele){ return 条件表达式}
返回值:如果成立 返回符合测试条件的第一个数组元素值,如果不成立 返回undefined
例子:const prod = this.cartList.find(ele => ele.id === item.id)
2.array.findIndex()
功能: 遍历每个元素, 根据判断的成立, 返回当前对象所处的元素下标
参数: 回调函数function(ele){return 判断条件}
返回值: 判断条件成立 返回传入一个测试条件(函数)符合条件的数组第一个元素位置,如果不成立,返回-1
参考:
https://blog.csdn.net/weixin_47675736/article/details/119787324
https://www.cnblogs.com/hellohello/p/7920566.html
https://es6.ruanyifeng.com/#docs/array

浙公网安备 33010602011771号