如果重复 x 次,则从数组中删除值 | JavaScript
Posted
技术标签:
【中文标题】如果重复 x 次,则从数组中删除值 | JavaScript【英文标题】:Remove value from array if it repeats x times | JavaScript 【发布时间】:2021-10-10 09:10:45 【问题描述】:我有一个包含值的数组,我想知道如果值重复 3 或 4 次,减少它的最佳方法是什么?
我知道如何删除重复项,但如果我希望该值重复两次怎么办?
让我们举个例子:
let arr = [1,1,1,3,3,2,4,4,7,7,7,7]
let n = 2 //so I want numbers to repeat maximum two times
结果是:
[1,1,3,3,2,4,4,7,7]
【问题讨论】:
熟悉how to access and process nested objects, arrays or JSON以及如何使用create objects并使用Object
和Array
的可用静态和实例方法。
【参考方案1】:
看看这个,可能会有帮助:
const reducer = (arr, n) => Object
.entries(arr.reduce((all, x) => (all[x] ? all[x]++ : all[x] = 1, all), ))
.reduce((arr, x) => arr.concat(Array(x[1] > n ? n : x[1]).fill(x[0])), []);
let arr = [1,1,1,3,3,2,4,4,7,7,7,7]
let n = 2
reducer(arr, n) // Array(9) [ "1", "1", "2", "3", "3", "4", "4", "7", "7" ]
【讨论】:
以上是关于如果重复 x 次,则从数组中删除值 | JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
如果数组值包含字符串,则从 List<string> 中查找值 [重复]