js 数组将相同的数据去重保留最新的一条方法
时间: 2024-05-05 18:18:52 浏览: 56
您好,关于您的问题,可以使用以下代码实现相同数据的去重并保留最新的一条:
```javascript
function uniqueArray(arr) {
var obj = {};
var result = [];
for (var i = 0; i < arr.length; i++) {
obj[arr[i].id] = arr[i];
}
for (var key in obj) {
result.push(obj[key]);
}
return result;
}
```
此代码通过对象的key作为标识,将相同数据去重并保留最新的一条数据存入数组result中。希望能解决您的问题。
相关问题
数组要是orderGroupId相同保留一条数据,去重vue
在Vue.js中,如果你想对数组里的对象按照`orderGroupId`字段进行去重,并保留每个`orderGroupId`下的第一条数据,你可以这样做:
1. 首先,创建一个新的空数组`result`用于存放去重后的结果。
2. 使用`Array.prototype.reduce()`方法遍历原数组,将每个`orderGroupId`对应的对象存储在一个对象中作为键值对。如果遇到相同的`orderGroupId`,则检查当前键值对是否存在,若不存在,则添加;存在的话,就不做处理,因为我们要保留的是第一条记录。
```javascript
let data = [
{ orderGroupId: '1', ... },
{ orderGroupId: '1', ... },
{ orderGroupId: '2', ... },
// 更多对象...
];
let result = data.reduce((acc, cur) => {
if (!acc[cur.orderGroupId]) {
acc[cur.orderGroupId] = cur;
}
return acc;
}, {});
// 现在result就是按照orderGroupId去重并保留第一条数据的结果
```
3. 如果你想获取最终的数组形式,可以再通过`Object.values()`将键值对转换为数组。
```javascript
let uniqueData = Object.values(result);
```
vue 多条数据去重
在 Vue 中,你可以使用 JavaScript 的 Set 数据结构来实现多条数据的去重。下面是一个简单的示例代码:
```javascript
// 假设有一个包含重复数据的数组
const data = [1, 2, 3, 1, 2, 4, 5, 3];
// 使用 Set 数据结构进行去重
const uniqueData = [...new Set(data)];
console.log(uniqueData); // 输出 [1, 2, 3, 4, 5]
```
在 Vue 中,你可以将这段代码放在组件的计算属性中,然后在模板中使用去重后的数据。
如果你的数据是对象类型,你可以使用 `JSON.stringify()` 将对象序列化为字符串,然后再进行去重。在使用时,记得将去重后的字符串转回对象类型。
希望这个示例能帮到你!如有其他问题,请随时提问。
阅读全文