es6数组filter
时间: 2023-09-09 12:05:01 浏览: 95
### 回答1:
ES6中的数组filter()方法用于从数组中筛选出符合条件的元素,并将这些元素以一个新的数组形式返回。它接收一个回调函数作为参数,该回调函数用于检查数组中的每个元素是否符合条件。
filter()方法的语法如下:
```
array.filter(callback[, thisArg])
```
其中,callback是一个函数,它可以接收三个参数:
- currentValue:当前元素的值。
- index(可选):当前元素在数组中的下标。
- array(可选):当前数组对象。
此外,filter()方法还可以接收一个可选的thisArg参数,用于指定callback函数中this关键字的值。
下面是一个示例代码,演示如何使用filter()方法从数组中筛选出所有大于等于10的元素:
```
const numbers = [2, 5, 8, 10, 15, 20];
const filteredNumbers = numbers.filter(function(number) {
return number >= 10;
});
console.log(filteredNumbers); // [10, 15, 20]
```
在上面的代码中,我们定义了一个名为numbers的数组,然后使用filter()方法从该数组中筛选出所有大于等于10的元素,并将这些元素存储在一个名为filteredNumbers的新数组中。最后,我们使用console.log()方法输出filteredNumbers数组的内容,以验证过滤操作是否成功。
### 回答2:
ES6中的数组filter()是一种用于遍历数组并根据指定条件筛选出符合条件的元素的方法。
filter()方法通过传入一个函数作为参数来实现筛选功能。该函数接受当前被遍历的数组元素作为参数,并返回一个布尔值。返回true的元素将被保留在新的数组中,而返回false的元素将被过滤掉。
下面是一个示例:
```javascript
const numbers = [1, 2, 3, 4, 5];
// 使用filter()方法筛选出所有大于2的数字
const filteredNumbers = numbers.filter(number => number > 2);
console.log(filteredNumbers); // 输出 [3, 4, 5]
```
在上面的例子中,原始数组numbers有5个元素。通过使用filter()方法,并传入一个箭头函数作为参数,我们筛选出所有大于2的数字。最终,被保留下来的数字被存储在新的数组filteredNumbers中,并通过打印输出。
filter()方法不会改变原始数组,而是返回一个新的数组,其中包含符合条件的元素。因此,我们可以将其结果赋值给一个新的变量。
除了箭头函数,我们还可以将一个名为predicate(断言)的普通函数作为filter()方法的参数。例如:
```javascript
const numbers = [1, 2, 3, 4, 5];
// 所有能被2整除的数字
function isEven(number) {
return number % 2 === 0;
}
const evenNumbers = numbers.filter(isEven);
console.log(evenNumbers); // 输出 [2, 4]
```
在这个例子中,我们定义了一个名为isEven()的函数,用于判断一个数字是否为偶数。然后,我们通过传递isEven函数作为参数给filter()方法来筛选出所有偶数。最终,结果存储在变量evenNumbers中并通过打印输出。
总结来说,ES6中的数组filter()方法提供了一种便捷的方式来筛选出数组中符合条件的元素,使我们可以轻松地处理数组数据。
### 回答3:
ES6中的数组filter()方法可以根据指定的条件过滤数组中的元素并返回一个新的数组。filter()方法接收一个回调函数作为参数,该函数在对数组的每个元素进行遍历时被调用。
回调函数接收三个参数,分别是当前遍历的元素、元素的索引和原始数组。该回调函数返回一个布尔值,如果返回为true,那么该元素就会被包含在最终的新数组中,否则会被过滤掉。
例如,我们有一个数组arr = [1, 2, 3, 4, 5],我们想要过滤出所有的偶数。我们可以使用filter()方法来实现这个功能:
```
const arr = [1, 2, 3, 4, 5];
const evenNumbers = arr.filter((num) => num % 2 === 0);
console.log(evenNumbers); // 输出 [2, 4]
```
在上述代码中,回调函数`(num) => num % 2 === 0`检查每个元素是否为偶数,如果是偶数,则返回true,否则返回false。filter()方法根据返回值来决定是否将该元素添加到新数组evenNumbers中。
需要注意的是,filter()方法不改变原始数组,而是返回一个新的数组。
阅读全文