前端的filter数组过滤返回符合条件的数组对象
时间: 2023-08-13 16:09:07 浏览: 101
好的,那么对于前端的数组过滤,可以使用 JavaScript 中的 filter() 方法来实现。filter() 方法会返回一个新的数组,其中包含符合指定条件的所有元素。
下面是一个例子,假设我们有一个数组,其中包含多个对象,每个对象都有一个 name 属性和一个 age 属性。现在我们想过滤出年龄大于等于 18 的所有对象:
```javascript
const persons = [
{ name: '张三', age: 20 },
{ name: '李四', age: 16 },
{ name: '王五', age: 25 },
{ name: '赵六', age: 30 }
];
const adults = persons.filter(person => person.age >= 18);
console.log(adults);
// 输出:[{ name: '张三', age: 20 }, { name: '王五', age: 25 }, { name: '赵六', age: 30 }]
```
在上面的代码中,我们使用了 filter() 方法,传入了一个箭头函数作为参数。这个箭头函数会判断每个元素的 age 属性是否大于等于 18,如果是,则保留该元素,否则过滤掉。
最终,filter() 方法返回了一个新的数组 adults,其中包含了符合条件的三个元素。
相关问题
前端es6 数组去重
ES6 中数组去重有多种方法,这里列举几种常见的:
1. **Set** 集合法:利用 Set 数据结构的特点,它不允许有重复元素,可以将数组转换为 Set,然后再转回数组,实现了去重。
```javascript
let arr = [1, 2, 2, 3, 4, 4];
let uniqueArr = [...new Set(arr)];
```
2. **filter + Array.from** 法:通过 filter 过滤出唯一值,再用 Array.from 转换为数组。
```javascript
let arr = [1, 2, 2, 3, 4, 4];
let uniqueArr = Array.from(new Map(arr.map(item => [item, item])));
```
3. **reduce** 法:使用 reduce 函数迭代数组,根据当前元素和累加器的状态来判断是否需要添加到新数组中。
```javascript
let arr = [1, 2, 2, 3, 4, 4];
let uniqueArr = arr.reduce((acc, cur) => acc.includes(cur) ? acc : [...acc, cur], []);
```
4. **JSON.stringify + JSON.parse** 法:将数组序列化成字符串,然后解析为新的数组,适用于基本类型的数组。
```javascript
let arr = [1, 2, 2, 3, 4, 4];
let uniqueArr = JSON.parse(JSON.stringify(new Set(arr)));
```
注意这种方法对复杂对象无效。
前端在a数组对象里面查找与b数组对象中相同的东西并在a数组中删除他们
您可以使用 JavaScript 中的 Array.prototype.filter 和 Array.prototype.includes 方法来实现这个需求。具体实现代码如下:
```
var a = [1, 2, 3, 4];
var b = [2, 4, 6];
a = a.filter(function(item) {
return !b.includes(item);
});
console.log(a); // [1, 3]
```
在上面的代码中,我们定义了两个数组 `a` 和 `b`,分别包含不同的元素。然后我们使用了 `Array.prototype.filter` 方法,它会返回一个新的数组,新数组中只包含那些满足指定条件的元素。在这里,我们用一个回调函数作为参数,这个函数会用来判断数组 `a` 中的每个元素是否在数组 `b` 中出现过,如果出现过就返回 `false`,否则返回 `true`。最后,我们将过滤后的新数组重新赋值给了变量 `a`。
阅读全文