如何在JS中按多维数组每行的第0个值过滤去除重复项
JS多维数组按首项去重实现方案
你可以通过Set存储已出现的子数组首项值,配合数组filter方法完成过滤,天然保留第一次出现的条目,实现代码如下:
// 原始数组 const originalArr = [ ['firstname', 'id'], ['FootContact Team', '1'], ['Cergy Pontoise Football Club', '2'], ['visiteur', '42'], ['visiteur', '43'], ['visiteur', '44'], ['monaco', '45'], ['monaco', '46'], ['paris', '47'], ['paris', '48'] ]; // 去重逻辑 const existedKeys = new Set(); const filteredArr = originalArr.filter(item => { const currentKey = item[0]; if (!existedKeys.has(currentKey)) { existedKeys.add(currentKey); return true; } return false; }); console.log(filteredArr); // 输出结果和你预期的完全一致
逻辑说明
- 基于Set的O(1)查询特性,整体仅需遍历数组1次,时间复杂度为O(n),性能表现优异
- 遍历顺序和原数组保持一致,会自动保留每个key对应的第一个条目
- 操作过程不会修改原数组,返回的是全新的过滤后数组,不会污染原有数据
内容的提问来源于stack exchange,提问作者Laura Bossy
相关产品推荐
相关产品推荐

