es6子数组过滤父数组过滤
时间: 2023-09-09 16:03:17 浏览: 130
es6提供了对数组的过滤和筛选的方法,可以通过子数组过滤父数组。
假设有一个父数组parentArr和一个子数组childArr,我们想要在父数组中过滤出子数组中的元素。
使用es6的filter方法可以轻松实现这一任务。filter方法接受一个回调函数作为参数,该回调函数用于定义过滤条件。
我们可以遍历父数组parentArr,对每个元素使用includes方法来判断是否包含在子数组childArr中,返回true的元素将被保留下来构成一个新的数组。
下面是示例代码:
```javascript
const parentArr = [1, 2, 3, 4, 5];
const childArr = [2, 4];
const filteredArr = parentArr.filter(item => childArr.includes(item));
console.log(filteredArr); // 输出 [2, 4]
```
在上面的代码中,filter方法传入的回调函数通过includes方法判断每个元素是否包含在子数组中,如果包含则返回true,否则返回false。最后得到的filteredArr即为过滤后的结果。
需要注意的是,这种方法只能过滤出在子数组中存在的元素,如果需要过滤出子数组中不存在的元素,只需要将判断条件改为`!childArr.includes(item)`即可。
总结起来,es6提供的filter方法可以很方便地过滤父数组中子数组的元素,通过传入不同的判断条件,可以实现多种过滤需求。
相关问题
es6 获取数组符合条件数据
ES6提供了一些方便的方法来获取数组中符合条件的数据,例如:
1. `Array.prototype.filter()`方法可以过滤出符合条件的元素,返回一个新数组。
```javascript
const arr = [1, 2, 3, 4, 5];
const filteredArr = arr.filter(num => num % 2 === 0);
console.log(filteredArr); // [2, 4]
```
2. `Array.prototype.find()`方法可以查找符合条件的第一个元素,返回该元素。如果没有符合条件的元素,则返回 `undefined`。
```javascript
const arr = [1, 2, 3, 4, 5];
const found = arr.find(num => num > 3);
console.log(found); // 4
```
3. `Array.prototype.findIndex()`方法可以查找符合条件的第一个元素的索引,返回该索引。如果没有符合条件的元素,则返回 `-1`。
```javascript
const arr = [1, 2, 3, 4, 5];
const foundIndex = arr.findIndex(num => num > 3);
console.log(foundIndex); // 3
```
4. `Array.prototype.some()`方法可以判断是否存在符合条件的元素,返回一个布尔值。
```javascript
const arr = [1, 2, 3, 4, 5];
const hasEven = arr.some(num => num % 2 === 0);
console.log(hasEven); // true
```
5. `Array.prototype.every()`方法可以判断数组中所有元素是否都符合条件,返回一个布尔值。
```javascript
const arr = [1, 2, 3, 4, 5];
const allEven = arr.every(num => num % 2 === 0);
console.log(allEven); // false
```
es6删除数组中指定元素
你可以使用数组的filter方法来删除数组中指定元素。代码如下:
```javascript
const arr = [1, 2, 3, 4, 5];
const target = 3;
const newArr = arr.filter(item => item !== target);
console.log(newArr); // [1, 2, 4, 5]
```
这段代码中,我们定义了一个数组`arr`,并且定义了一个要删除的目标元素`target`。然后,通过数组的`filter`方法过滤掉了所有等于`target`的元素,得到了一个新数组`newArr`。最后输出了`newArr`,结果为`[1, 2, 4, 5]`。
阅读全文