如何筛选数组中首元素重复次数超过2次的对应子项
实现步骤
- 第一步:遍历原数组,统计每个子数组首元素的出现次数,存入哈希表中
- 第二步:再次遍历原数组,筛选出首元素出现次数符合要求的条目即可
代码实现(JavaScript)
const arr = [ ['a',1], ['a',2], ['a',4], ['b',2], ['C',2], ['d',2], ['e',2], ['e',2], ['n',2] ] // 统计首元素出现次数 const countMap = arr.reduce((map, item) => { const firstKey = item[0] map[firstKey] = (map[firstKey] || 0) + 1 return map }, {}) // 筛选:严格匹配"重复次数超过2次"即出现次数≥3,用下面的写法 const result = arr.filter(item => countMap[item[0]] > 2) // 如果要匹配你的示例结果、e出现2次也保留,对应出现次数≥2,改成以下写法即可 // const result = arr.filter(item => countMap[item[0]] >= 2) console.log(result)
代码实现(Python)
arr = [ ['a',1], ['a',2], ['a',4], ['b',2], ['C',2], ['d',2], ['e',2], ['e',2], ['n',2] ] # 统计首元素出现次数 count_map = {} for item in arr: key = item[0] count_map[key] = count_map.get(key, 0) + 1 # 筛选,需要保留出现2次的就把>2改成>=2 result = [item for item in arr if count_map[item[0]] > 2] print(result)
内容的提问来源于stack exchange,提问作者شاهین محبی
相关产品推荐
相关产品推荐

