📅  最后修改于: 2023-12-03 15:22:40.468000             🧑  作者: Mango
在编写程序时,我们时常需要创建一组唯一的对象数组。在本文中,我们将介绍如何创建这样的数组。
我们可以使用 Javascript 中的 Set 数据结构来保持每个对象唯一。首先,我们创建一个空的 Set:
const uniqueArray = new Set();
然后,我们使用一个循环来将每个对象添加到 Set 中:
for (let i = 0; i < array.length; i++) {
uniqueArray.add(array[i]);
}
最后,我们将 Set 转换为数组:
const result = [...uniqueArray];
我们也可以使用 Array 的 filter 方法来创建一个唯一的对象数组。假设我们将对象的某个属性作为唯一标识符,我们可以这样做:
const uniqueArray = array.filter((item, index, arr) => {
return arr.map(mapItem => mapItem.id).indexOf(item.id) === index;
});
reduce 方法也可以用来创建唯一的对象数组。我们可以创建一个空的对象作为初始值,然后遍历数组并将每个对象的唯一标识符作为属性名添加到对象中。最后,我们将对象的所有属性作为数组返回:
const uniqueArray = array.reduce((result, item) => {
result[item.id] = item;
return result;
}, {});
const result = Object.values(uniqueArray);
在本文中,我们介绍了三种方法来创建一个唯一的对象数组。使用 Set 数据结构是最简单和直接的方法,但如果需要自定义唯一标识符,则使用 filter 或 reduce 方法可能更好。