前端数组根据一个新数组去筛选
时间: 2023-09-08 10:12:07 浏览: 42
可以使用 JavaScript 中的 filter 方法来筛选数组。filter 方法可以接受一个回调函数作为参数,回调函数会遍历数组中的每个元素,如果回调函数返回 true,则该元素会被保留在返回的新数组中,否则会被过滤掉。
假设有一个原始数组 `arr`,要根据一个新数组 `filterArr` 来筛选出符合条件的元素,可以这样写:
```
const arr = [1, 2, 3, 4, 5];
const filterArr = [2, 4, 6];
const filteredArr = arr.filter(item => filterArr.includes(item));
console.log(filteredArr); // [2, 4]
```
上面的代码中,使用了 `filter` 方法和 `includes` 方法。`filter` 方法会遍历原始数组 `arr` 中的每个元素,并把符合条件的元素保留在返回的新数组 `filteredArr` 中。而 `includes` 方法会判断 `filterArr` 中是否包含当前遍历的元素 `item`,如果包含则返回 true,否则返回 false。
最终,`filteredArr` 中会保留原始数组中与 `filterArr` 中相同的元素,即 `[2, 4]`。
相关问题
前端数组含有很多拥有id的数据根据一个新数组返回的id去筛选
可以使用数组的 `filter` 方法来实现筛选操作,具体步骤如下:
1. 对于前端数组,使用 `filter` 方法过滤符合条件的数据。
2. 在 `filter` 方法中,使用 `includes` 方法判断当前数据的 id 是否在新数组中。
3. 返回符合条件的数据集合。
示例代码如下:
```javascript
const oldArray = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'orange' },
{ id: 4, name: 'grape' },
];
const newArray = [2, 4];
const filteredArray = oldArray.filter(item => newArray.includes(item.id));
console.log(filteredArray); // [{ id: 2, name: 'banana' }, { id: 4, name: 'grape' }]
```
以上代码中,`oldArray` 是原始数组,`newArray` 是新数组,我们需要根据新数组中的 id 值来筛选原始数组中的数据。最终得到的 `filteredArray` 就是符合条件的数据集合。
前端数组删除元素除了splice方法还有什么其他方法
除了`splice`方法,前端数组删除元素还有以下方法:
1. `pop()`:删除数组的最后一个元素,并返回该元素。
2. `shift()`:删除数组的第一个元素,并返回该元素。
3. `filter()`:返回一个新数组,该数组包含符合条件的原数组元素,可以通过筛选过滤来达到删除元素的效果。
4. `slice()`:返回一个新数组,该数组包含从原数组中指定的开始位置和结束位置之间的元素。可通过截取片段来达到删除元素的效果。
需要注意的是,`pop()`和`shift()`方法会改变原数组,而`filter()`和`slice()`方法不会改变原数组,而是返回一个新数组,因此需要将新数组赋值给原数组来实现删除元素的效果。