写个方法找出两个二维数组的差集
在前端开发中,JavaScript 是最常用的编程语言。以下是一个使用 JavaScript 编写的函数,用于找出两个二维数组的差集:
function arrayDiff(arr1, arr2) {
// 将二维数组转换为一维数组,并存储每个子数组转换为字符串的形式,方便比较
const map1 = new Map(arr1.map(item => [item.toString(), item]));
const map2 = new Set(arr2.map(item => item.toString()));
// 过滤出只在第一个数组中出现的子数组
const diff = Array.from(map1.entries())
.filter(([key]) => !map2.has(key))
.map(([, value]) => value);
return diff;
}
// 示例用法
const arr1 = [[1, 2], [3, 4], [5, 6]];
const arr2 = [[3, 4], [7, 8]];
const result = arrayDiff(arr1, arr2);
console.log(result); // 输出: [[1, 2], [5, 6]]
这个函数首先将两个二维数组转换为一维数组,并使用 Map
和 Set
数据结构来存储每个子数组转换为字符串的形式。然后,它过滤出只在第一个数组中出现的子数组,并将结果转换回二维数组的形式。
注意,这个函数假设子数组中的元素顺序是重要的,即 [1, 2]
和 [2, 1]
被视为不同的子数组。如果你希望忽略元素顺序,你可以在将子数组转换为字符串之前先对它们进行排序。
另外,这个函数也假设子数组中的元素都是基本类型(如数字、字符串等),而不是对象或复杂类型。如果子数组中包含对象或复杂类型,你可能需要实现更复杂的比较逻辑来确保正确的差集计算。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类