JS数组方法总结 | 青训营

79 阅读5分钟

在实践过程中,我发现数组以及数组的相关方法非常的常用,如果每用一次都要去查笔记的话未免效率太低,因此将数组常用的方法进行总结和回顾。

常用方法

forEach

遍历数组,forEach()方法需要一个函数作为参数,称为回调函数。数组中有几个元素函数就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,我们可以来定义形参,来读取这些内容。

arr.forEach(callback(currentValue, index, array))

callback:回调函数,为数组中每个元素执行的函数,该函数接收1至3个参数。

currentValue:数组中正在处理的当前元素。

index:可选 数组中正在处理的当前元素的索引。

array:可选 正在操作的数组。

var arr = [1, 2, 3, 4, 5];
arr.forEach( function(currentValue,index,array) {
   console.log("当前值",currentValue);
   console.log("当前索引",index);
   console.log("当前数组",array);
   console.log("无需返回值");
});

map

map()方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值,也就相当于获得一个数组的映射,回调函数需要返回值。

arr.map(callback(currentValue, index, array))

callback:回调函数,为数组中每个元素执行的函数,该函数接收1至3个参数。

currentValue:数组中正在处理的当前元素。

index:可选 数组中正在处理的当前元素的索引。

array:可选 正在操作的数组。

var arr = [1, 2, 3, 4, 5];
var newArr = arr.map( function(currentValue,index,array) {
    console.log("当前值",currentValue);
    console.log("当前索引",index);
    console.log("当前数组",array);
    console.log("");
    return currentValue*2; // 将arr值的2倍返回成为新数组
},obj);

push

push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。 arr.push(element1[, ..., elementN]) elementN:被添加到数组末尾的元素。

var arr = [1, 2, 3, 4, 5]; 
console.log(arr.push(6,7)); // 7 
console.log(arr); // [1,2,3,4,5,6,7]

unshift

unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度,该方法修改原有数组。

shift

shift()方法从数组中删除第一个元素,并返回该元素的值,该方法会改变原数组。

pop

pop()方法从数组中删除最后一个元素,并返回该元素的值,当数组为空时返回undefined,此方法更改数组的长度。

splice

splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组

var arr = [1, 2, 3, 4, 5]; 
console.log(arr.splice(2, 1)); // [3] 从位置2开始 删除1个
console.log(arr); // [1, 2, 4, 5]

slice

slice()方法返回一个新的数组对象,这一对象是一个由begin和end决定的原数组的浅拷贝,包括begin,不包括end,原始数组不会被改变

var arr = [1, 2, 3, 4, 5]; 
console.log(arr.slice(1, 3)); // [2, 3] 相当于numpy数组切片
console.log(arr); // [1, 2, 3, 4, 5] // 不改变原数组

concat

concat()方法用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新数组。

var arr1 = [1, 2, 3]; 
var arr2 = [4, 5, 6]; 
var arr3 = arr1.concat(arr2);

join

join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

var arr = ['a', 'b', 'c']; 
console.log(arr.join('&')); // a&b&c 
console.log(arr); // ["a", "b", "c"] // 不改变原数组

sort

sort()方法用某种算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的。

reverse

reverse()方法将数组中元素的位置颠倒,并返回该数组,该方法会改变原数组

every

every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试,它返回一个布尔值。

some

some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试,它返回的是一个Boolean类型的值。

filter

filter()方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

find

find()方法返回数组中满足提供的测试函数的第一个元素的值,否则返回undefined

findIndex

findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1

includes

includes()方法用来判断一个数组是否包含一个指定的值,如果包含则返回true,否则返回false

indexOf

indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1

lastIndexOf

lastIndexOf()方法返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从fromIndex处开始。

fill

fill()方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,不包括终止索引。

copyWithin

copyWithin()方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。

flat

flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。

未完待续...