高手必备:10 个 JavaScript 数组操作神技,助你征服代码世界
2023-09-25 07:59:12
1. Array.prototype.forEach()
forEach()
方法用于遍历数组中的每个元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach((number, index, array) => {
console.log(`Element at index ${index}: ${number}`);
});
输出:
Element at index 0: 1
Element at index 1: 2
Element at index 2: 3
Element at index 3: 4
Element at index 4: 5
2. Array.prototype.map()
map()
方法用于将数组中的每个元素映射到一个新值。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。map()
方法返回一个新数组,该数组包含回调函数的返回值。
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map((number) => {
return number * 2;
});
console.log(doubledNumbers);
输出:
[2, 4, 6, 8, 10]
3. Array.prototype.filter()
filter()
方法用于过滤数组中的元素,只保留满足特定条件的元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。filter()
方法返回一个新数组,该数组包含回调函数返回 true 的元素。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const evenNumbers = numbers.filter((number) => {
return number % 2 === 0;
});
console.log(evenNumbers);
输出:
[2, 4, 6, 8, 10]
4. Array.prototype.reduce()
reduce()
方法用于将数组中的所有元素归并为一个值。它接受两个参数:一个回调函数和一个初始值。回调函数将在数组的每个元素上调用。回调函数的第一个参数是归并后的值,第二个参数是数组中的元素,第三个参数是元素的索引,第四个参数是数组本身。reduce()
方法返回归并后的值。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((total, number) => {
return total + number;
}, 0);
console.log(sum);
输出:
15
5. Array.prototype.some()
some()
方法用于检查数组中是否至少有一个元素满足特定条件。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。some()
方法返回一个布尔值,表示数组中是否至少有一个元素满足回调函数的条件。
const numbers = [1, 2, 3, 4, 5];
const hasEvenNumber = numbers.some((number) => {
return number % 2 === 0;
});
console.log(hasEvenNumber);
输出:
true
6. Array.prototype.every()
every()
方法用于检查数组中的所有元素是否都满足特定条件。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。every()
方法返回一个布尔值,表示数组中的所有元素是否都满足回调函数的条件。
const numbers = [1, 2, 3, 4, 5];
const allEvenNumbers = numbers.every((number) => {
return number % 2 === 0;
});
console.log(allEvenNumbers);
输出:
false
7. Array.prototype.find()
find()
方法用于查找数组中满足特定条件的第一个元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。find()
方法返回满足回调函数条件的第一个元素,如果数组中没有元素满足条件,则返回 undefined。
const numbers = [1, 2, 3, 4, 5];
const firstEvenNumber = numbers.find((number) => {
return number % 2 === 0;
});
console.log(firstEvenNumber);
输出:
2
8. Array.prototype.findIndex()
findIndex()
方法用于查找数组中满足特定条件的第一个元素的索引。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。findIndex()
方法返回满足回调函数条件的第一个元素的索引,如果数组中没有元素满足条件,则返回 -1。
const numbers = [1, 2, 3, 4, 5];
const firstEvenNumberIndex = numbers.findIndex((number) => {
return number % 2 === 0;
});
console.log(firstEvenNumberIndex);
输出:
1
9. Array.prototype.includes()
includes()
方法用于检查数组中是否包含特定元素。它接受一个值作为参数,该值将与数组中的每个元素进行比较。includes()
方法返回一个布尔值,表示数组中是否包含该值。
const numbers = [1, 2, 3, 4, 5];
const hasThree = numbers.includes(3);
console.log(hasThree);
输出:
true
10. Array.prototype.join()
join()
方法用于将数组中的所有元素连接成一个字符串。它接受一个分隔符作为参数,该分隔符将被插入到数组元素之间。join()
方法返回一个字符串,该字符串包含数组中的所有元素,中间用分隔符隔开。
const numbers = [1, 2, 3, 4, 5];
const joinedNumbers = numbers.join(",");
console.log(joinedNumbers);
输出:
1,2,3,4,5