es6 对象数组,根据属性去除重复参数
时间: 2023-05-15 17:07:10 浏览: 117
可以使用 Set 和 Array.from() 方法来实现去重,具体代码如下:
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 1, name: 'Alice' },
{ id: 4, name: 'David' },
{ id: 2, name: 'Bob' }
];
const uniqueArr = Array.from(new Set(arr.map(item => item.id))).map(id => {
return arr.find(item => item.id === id);
});
console.log(uniqueArr);
输出结果为:
[
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' }
]
相关问题
es6 对象数组求和
可以使用reduce()方法对对象数组进行求和,具体实现如下所示:
```javascript
let arr = [{x: 1}, {x: 2}, {x: 3}];
let sum = arr.reduce((prev, cur) => prev + cur.x, 0);
console.log(sum); // 输出:6
```
上述代码中,首先定义了一个对象数组arr,然后使用reduce()方法对其进行求和。reduce()方法接收两个参数,第一个参数是一个回调函数,用于对数组中的每个元素进行处理;第二个参数是初始值,用于指定reduce()方法开始计算的值。在上述代码中,回调函数中的prev表示上一次计算的结果,cur表示当前正在处理的元素,prev + cur.x表示将上一次计算的结果加上当前元素的x属性值,最终得到求和的结果。
es6 对象数组循环找key
可以使用 `for...of` 循环来遍历数组,然后在循环体内使用对象的键来访问相应的值。
例如,假设有一个对象数组,每个对象都有一个 `id` 键:
```javascript
const items = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'orange' }
];
```
现在要找到 `id` 为 2 的对象,可以使用 `for...of` 循环:
```javascript
for (const item of items) {
if (item.id === 2) {
console.log(item);
break;
}
}
```
在循环体内,我们使用 `item.id` 来访问对象的 `id` 值,并且与目标值进行比较。如果找到了目标对象,就打印它并且使用 `break` 语句退出循环。
另外,也可以使用 `Array.prototype.find()` 方法来查找符合条件的元素:
```javascript
const item = items.find(item => item.id === 2);
console.log(item);
```
这里使用了箭头函数来作为 `find()` 方法的参数,它的返回值是一个布尔值,用于指示元素是否符合条件。在这个例子中,我们查找 `id` 等于 2 的元素,并将结果赋给变量 `item`。如果没有找到符合条件的元素,则 `item` 的值为 `undefined`。
阅读全文