从JS数组中去掉重复的子对象数组可以通过以下步骤实现:
以下是一个示例代码:
function removeDuplicateSubArrays(arr) {
const seen = {}; // 存储已经出现过的子对象字符串
const result = []; // 存储去重后的子对象数组
for (let i = 0; i < arr.length; i++) {
const subArrayString = JSON.stringify(arr[i]); // 将子对象转换为字符串形式
if (!seen[subArrayString]) {
seen[subArrayString] = true; // 将子对象字符串添加到存储对象中
result.push(arr[i]); // 将原始子对象添加到新数组中
}
}
return result;
}
// 示例用法
const originalArray = [
[{ id: 1 }, { id: 2 }],
[{ id: 1 }, { id: 2 }],
[{ id: 3 }, { id: 4 }],
[{ id: 1 }, { id: 2 }],
];
const uniqueArray = removeDuplicateSubArrays(originalArray);
console.log(uniqueArray);
这段代码将输出去重后的子对象数组:
[
[{ id: 1 }, { id: 2 }],
[{ id: 3 }, { id: 4 }]
]
这种方法通过将子对象转换为字符串形式,并利用对象的键的唯一性来去重。请注意,这种方法对于包含复杂对象或嵌套数组的情况可能不适用,因为JSON.stringify()方法可能无法正确处理这些情况。在实际应用中,可能需要根据具体情况进行适当的修改。
领取专属 10元无门槛券
手把手带您无忧上云