dma*_*max -4 javascript lodash
我正在寻找一些练习的帮助,我必须返回数组中出现次数最多的项目。我知道有关此的其他文章,但是我找不到一个仅在我成功适应后才使用lodash的文章。
例如 :
var array = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3]
应该返回:a(5次)
我试图用类似的方法._groupBy,._countBy,_.sortBy但我总是发现自己停留在一些点。谢谢。
使用_.countBy()获得元素的对象:计数。使用转换为元组数组_.entries()。用找出最大值_.maxBy(_.last),因为计数值是元组中的第二项。使用提取元组中的元素_.head()。
var array = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3];
var result = _.head(_(array)
.countBy()
.entries()
.maxBy(_.last));
console.log(result);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
而且,如果您要从lodash导入特定的方法,并且不想使用链使用,请_.flow()改为:
var { flow, countBy, entries, partialRight, maxBy, head, last } = _;
var array = [3, 'a', 'a', 'a', 2, 3, 'a', 3, 'a', 2, 4, 9, 3];
var result = flow(
countBy,
entries,
partialRight(_.maxBy, last),
head
)(array);
console.log(result);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |