js对象数组去重
可以使用ES6中的Set和Array.from()方法来实现对象数组的去重。
例如,假设有如下对象数组:
const arr = [
{id: 1, name: 'John'},
{id: 2, name: 'Jane'},
{id: 1, name: 'John'},
{id: 3, name: 'Bob'}
];
则可以通过以下代码将其去重:
const uniqueArr = Array.from(new Set(arr.map(obj => JSON.stringify(obj)))).map(str => JSON.parse(str));
解释:
-
使用map()方法将对象数组中每个对象转换为JSON字符串。
-
创建一个Set对象来存储这些JSON字符串,从而实现去重。
-
使用Array.from()方法将Set对象转换为数组。
-
再次使用map()方法将JSON字符串转换回对象,最终得到去重后的对象数组。
注意:这种方法的缺点是,如果对象数组中的对象属性顺序不同,将无法去重。因此建议在使用之前先将对象属性按照某种规则排序。
原文地址: http://www.cveoy.top/t/topic/bESd 著作权归作者所有。请勿转载和采集!