数组对象 根据指定的键名过滤出不相同的数据
时间: 2024-03-12 12:43:00 浏览: 17
可以使用 JavaScript 中的 Array.filter() 和 Array.findIndex() 方法来过滤出不相同的数据。
假设有一个包含多个对象的数组 arr,每个对象都有一个键名为 key 的属性。要过滤出 key 值不相同的对象,可以按照以下步骤进行操作:
1. 定义一个空数组 result,用于存放过滤出的对象。
2. 遍历数组 arr,对于每个对象,获取其 key 值。
3. 使用 Array.findIndex() 方法查找在 result 数组中是否已经存在 key 值相同的对象。如果不存在,则将该对象添加到 result 数组中。
4. 最后返回 result 数组即可。
以下是示例代码:
```javascript
const arr = [
{ key: 'a', value: 1 },
{ key: 'b', value: 2 },
{ key: 'c', value: 3 },
{ key: 'a', value: 4 },
{ key: 'd', value: 5 },
];
const result = [];
arr.forEach(obj => {
const index = result.findIndex(item => item.key === obj.key);
if (index === -1) {
result.push(obj);
}
});
console.log(result); // [{ key: 'a', value: 1 }, { key: 'b', value: 2 }, { key: 'c', value: 3 }, { key: 'd', value: 5 }]
```
在上面的示例代码中,我们遍历了数组 arr 中的每个对象,并使用 Array.findIndex() 方法查找在 result 数组中是否已经存在 key 值相同的对象。如果不存在,则将该对象添加到 result 数组中。最后返回的 result 数组中就是 key 值不相同的对象。