前端数组根据一个新数组去筛选
时间: 2023-09-08 17:12:07 浏览: 177
可以使用 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` 就是符合条件的数据集合。
前端筛选出 两个数组的不同的数据
在前端,如果你有两个数组需要找出它们之间的不同元素,你可以使用多种方法。这里提供一种常见的JavaScript方法:
1. **使用Set数据结构**:
JavaScript的Set是一个不包含重复值的集合,可以用来轻松找到两个数组的不同元素。首先将这两个数组分别转换为Set,然后取它们的差集(Set A 减去 Set B 或者 Set B 减去 Set A),就可以得到不同的元素。
```javascript
function findDiff(arr1, arr2) {
return [...new Set([...arr1, ...arr2])].filter(item => !arr1.includes(item) && !arr2.includes(item));
}
let array1 = [1, 2, 3];
let array2 = [2, 4, 5];
console.log(findDiff(array1, array2)); // 输出:[1, 3, 4, 5]
```
2. **使用双重循环**:
如果不想引入新的数据结构,也可以通过遍历其中一个数组,检查另一个数组是否包含当前元素来实现:
```javascript
function findDiff(arr1, arr2) {
let diffArray = [];
for (let item of arr1) {
if (!arr2.includes(item)) {
diffArray.push(item);
}
}
return diffArray;
}
```
阅读全文