k00*_*00k 16 javascript underscore.js
考虑以下简单数组:
var foods = ['hotdog', 'hamburger', 'soup', 'sandwich', 'hotdog', 'watermelon', 'hotdog'];
Run Code Online (Sandbox Code Playgroud)
有underscore,是否有一个函数或函数组合,我可以用来选择最常出现的值(在这种情况下是它hotdog)?
sol*_*oth 43
var foods = ['hotdog', 'hamburger', 'soup', 'sandwich', 'hotdog', 'watermelon', 'hotdog'];
var result = _.chain(foods).countBy().pairs().max(_.last).head().value();
console.log(result);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>Run Code Online (Sandbox Code Playgroud)
countBy:将列表排序到组中,并返回每个组中对象数的计数.
对:将对象转换为
[key, value]对列表.max:返回列表中的最大值.如果提供了迭代器函数,则将在每个值上使用它来生成值的排序标准.
last:返回数组的最后一个元素
head:返回数组的第一个元素
chain:返回一个包装对象.对此对象调用方法将继续返回包装对象,直到使用value.
value:提取包装对象的值.