1.push(): 在数组的末尾添加一个或多个元素,并返回数组的新长度。
let fruits = ['apple', 'banana'];
let len = fruits.push('orange');
console.log(fruits); // ["apple", "banana", "orange"]
console.log(len); // 3
2.pop(): 移除数组的最后一个元素,并返回该元素的值。
let fruits = ['apple', 'banana', 'orange'];
let lastFruit = fruits.pop();
console.log(fruits); // ["apple", "banana"]
console.log(lastFruit); // "orange"
3.shift(): 移除数组的第一个元素,并返回该元素的值。
let fruits = ['apple', 'banana', 'orange'];
let firstFruit = fruits.shift();
console.log(fruits); // ["banana", "orange"]
console.log(firstFruit); // "apple"
4.unshift(): 在数组的开头添加一个或多个元素,并返回数组的新长度。
let fruits = ['apple', 'banana'];
let len = fruits.unshift('orange');
console.log(fruits); // ["orange", "apple", "banana"]
console.log(len); // 3
5.splice(): 从数组中添加或移除元素。
let fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1, 'pear', 'melon');
console.log(fruits); // ["apple", "pear", "melon", "orange"]
6.slice(): 返回数组的一个部分,不会改变原数组。
let fruits = ['apple', 'banana', 'orange', 'pear', 'melon'];
let slicedFruits = fruits.slice(1, 4);
console.log(fruits); // ["apple", "banana", "orange", "pear", "melon"]
console.log(slicedFruits); // ["banana", "orange", "pear"]
7.filter(): 创建一个新数组,包含通过所提供函数实现的测试的所有元素。
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(num) {
return num % 2 === 0;
});
console.log(evenNumbers); // [2, 4]
8.map(): 创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数后返回的结果。
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = numbers.map(function(num) {
return num * 2;
});
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
9.reduce():该函数通过对数组中每个元素依次调用回调函数,将数组转换为单个值。它的语法如下:
array.reduce(callback, initialValue)
其中,callback
是回调函数,initialValue
是初始值。
例如,如果要将一个数组中所有元素相加,可以使用如下代码:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // 输出 15
10.concat():该函数用于连接两个或多个数组,并返回一个新数组。它的语法如下:
array.concat(array1, array2, ..., arrayX)
其中,array1, array2, ..., arrayX
是要连接的数组。
例如,如果要连接两个数组,可以使用如下代码:
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const newArray = array1.concat(array2);
console.log(newArray); // 输出 [1, 2, 3, 4, 5, 6]
11.slice():该函数返回一个数组的一部分,从开始位置到结束位置,不包括结束位置的元素。它的语法如下:
array.slice(start, end)
其中,start
是开始位置的索引,end
是结束位置的索引(不包括该位置的元素)。
例如,如果要获取一个数组的前三个元素,可以使用如下代码:
const numbers = [1, 2, 3, 4, 5];
const newNumbers = numbers.slice(0, 3);
console.log(newNumbers); // 输出 [1, 2, 3]
12.some():用于判断数组中是否至少有一个元素满足指定条件,如果满足则返回 true
,否则返回 false。它的语法及示例如下:
array.some(callback[, thisArg])
其中 callback
是一个函数,用于测试数组中的每个元素。thisArg
是可选的,它在执行 callback
函数时作为 this
值。
callback
函数接收三个参数:
element
:当前被处理的元素。index
:当前元素在数组中的索引。array
:调用some()
方法的数组。
callback
函数返回一个布尔值,用于指示当前元素是否满足条件。
下面是一个使用 some()
方法的例子:
const numbers = [1, 2, 3, 4, 5];
const even = numbers.some((num) => num % 2 === 0);
console.log(even); // true
上述代码中,some()
方法检查 numbers
数组中是否有至少一个偶数,由于存在偶数 2 和 4,因此返回 true
。
还可以使用 some()
方法来检查数组中是否包含某个特定的元素,例如:
const fruits = ['apple', 'banana', 'orange', 'grape'];
const hasBanana = fruits.some((fruit) => fruit === 'banana');
console.log(hasBanana); // true
上述代码中,some()
方法检查 fruits
数组中是否包含 'banana'
元素,由于存在 'banana'
,因此返回 true
。
需要注意的是,some()
方法只会遍历数组中满足条件的元素,如果有满足条件的元素则返回 true
,否则遍历整个数组并返回 false
。
13.every():用于检测数组中的所有元素是否都符合指定的条件。它的语法及示例如下:
该方法会对数组中的每个元素依次执行指定的回调函数,只有当每个元素都满足回调函数中的条件时,才会返回true;否则,返回false。
array.every(callback[, thisArg])
其中,callback是一个回调函数,可以接受三个参数:
- currentValue:数组中正在被处理的当前元素。
- index:正在被处理的当前元素的索引。
- array:调用every()方法的数组本身。
而thisArg参数是可选的,表示回调函数中this关键字的指向。
下面是一个使用every()方法判断数组中所有元素是否都大于0的示例代码:
const arr = [1, 2, 3, 4, 5];
const result = arr.every((element) => element > 0);
console.log(result); // true
上述代码首先定义了一个数组arr,然后使用every()方法对数组进行操作,判断数组中所有元素是否都大于0,最终将结果保存在result变量中。由于数组中所有元素都大于0,因此最终输出结果为true。
注意,如果数组为空,则every()方法将返回true。
这些是常用的一些数组函数,当然还有其他函数,不过这些函数已经足够应对大部分情况了。