function checkArrayEquality(array1, array2) {
const filenameMap = {}; // 辅助对象,用于记录已出现的filename
const duplicateFilenames = []; // 存储重复的filename
// 遍历 array1 中的每个对象
for (let obj1 of array1) {
// 取得当前对象的 filename 值
const filename1 = obj1.filename;
// 检查filename是否已存在于辅助对象中
if (filenameMap[filename1]) {
duplicateFilenames.push(filename1); // 将重复的filename添加到数组中
} else {
filenameMap[filename1] = true; // 将filename添加到辅助对象中
}
}
// 遍历 array2 中的每个对象
for (let obj2 of array2) {
// 取得当前对象的 filename 值
const filename2 = obj2.filename;
// 检查filename是否已存在于辅助对象中
if (filenameMap[filename2]) {
duplicateFilenames.push(filename2); // 将重复的filename添加到数组中
} else {
filenameMap[filename2] = true; // 将filename添加到辅助对象中
}
}
// 返回重复的filename数组
return duplicateFilenames;
}
// 调用函数进行判断
const array1 = [{ filename: 'file1' }, { filename: 'file2' }, { filename: 'file3' }];
const array2 = [{ filename: 'file4' }, { filename: 'file2' }, { filename: 'file5' }];
const duplicateFilenames = checkArrayEquality(array1, array2);
if (duplicateFilenames.length > 0) {
console.log('重复的filename是:', duplicateFilenames);
} else {
console.log('数组中的filename没有重复');
}
js数组去重
最新推荐文章于 2024-06-01 07:27:22 发布