作为一个前端程序员,我们往往会用到许多循环筛选方法,比如很常用的for循环,foreach循环,filter筛选,map循环等等
在前端JavaScript中,有多种方法可以对数组进行筛选。以下是一些常用的筛选方法:
1.filter() 方法:
filter() 方法创建一个新数组,其中包含通过指定函数测试的所有元素。
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // Output: [2, 4, 6]
2.find() 方法:
find() 方法返回满足指定测试函数的第一个元素的值。
const numbers = [1, 2, 3, 4, 5, 6];
const firstEvenNumber = numbers.find(number => number % 2 === 0);
console.log(firstEvenNumber); // Output: 2
3.findIndex() 方法:
findIndex() 方法返回满足指定测试函数的第一个元素的索引。
const numbers = [1, 2, 3, 4, 5, 6];
const firstEvenNumberIndex = numbers.findIndex(number => number % 2 === 0);
console.log(firstEvenNumberIndex); // Output: 1
4.indexOf() 方法:
indexOf() 方法返回指定元素在数组中的第一个索引,如果不存在则返回-1。
适用于筛选特定元素。
const fruits = ['apple', 'banana', 'orange', 'pear'];
const orangeIndex = fruits.indexOf('orange');
console.log(orangeIndex); // Output: 2
5.some() 方法:
some() 方法会检测数组中是否至少有一个元素满足指定的测试函数,如果有则返回 true,否则返回 false。
const numbers = [1, 2, 3, 4, 5, 6];
const hasEvenNumber = numbers.some(number => number % 2 === 0);
console.log(hasEvenNumber); // Output: true
6.every() 方法:
every() 方法会检测数组中所有元素是否都满足指定的测试函数,如果是则返回 true,否则返回 false。
const numbers = [1, 2, 3, 4, 5, 6];
const areAllEvenNumbers = numbers.every(number => number % 2 === 0);
console.log(areAllEvenNumbers); // Output: false
7.reduce() 方法:
reduce() 方法可以通过指定的函数将数组的元素归纳为单个值。
const numbers = [1, 2, 3, 4, 5, 6];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // Output: 21
8.map() 方法:
map() 方法创建一个新数组,其中包含对原始数组的每个元素应用指定函数的结果。
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]
9.slice() 方法:
slice() 方法返回一个原始数组的浅拷贝,从起始索引到结束索引(不包含结束索引),不会修改原始数组。
const numbers = [1, 2, 3, 4, 5];
const slicedNumbers = numbers.slice(1, 4);
console.log(slicedNumbers); // Output: [2, 3, 4]
10.concat() 方法:
concat() 方法用于连接两个或多个数组,并返回一个新数组。
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const mergedArray = array1.concat(array2);
console.log(mergedArray); // Output: [1, 2, 3, 4, 5, 6]
11.sort() 方法:
sort() 方法用于对数组元素进行排序,默认情况下按照字符串的 Unicode 编码进行排序。
const numbers = [3, 1, 4, 2, 5];
const sortedNumbers = numbers.sort();
console.log(sortedNumbers); // Output: [1, 2, 3, 4, 5]
12.includes() 方法:
includes() 方法检查数组是否包含某个特定的元素,如果包含则返回 true,否则返回 false。
const numbers = [1, 2, 3, 4, 5];
const includesThree = numbers.includes(3);
console.log(includesThree); // Output: true
13.forEach() 方法
forEach() 方法是用于数组的常用迭代方法,它可以用来遍历数组中的每个元素并对其执行指定的操作。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach(number => console.log(number));
14.for 循环
for 循环是一种经典的迭代结构,用于在代码中多次执行相同或类似的操作。
for (let i = 0; i < 5; i++) {
console.log(i);
}