Javascript 使用计数对js字符串数组进行分组
我有简单的js数组Javascript 使用计数对js字符串数组进行分组,javascript,Javascript,我有简单的js数组 var fruit = [ 'apple' , 'apple' , 'orange' ] 我需要这个摸索,以便我能够以以下格式呈现数据: apple 2 orange 1 我尝试过创建两个数组,但都失去了控制。您可以通过迭代水果值并增加计数器: var result = {}; for (var i = 0, n = fruit.length; i < n; i++) { if (typeof result[fruit[i]] === 'undefined')
var fruit = [ 'apple' , 'apple' , 'orange' ]
我需要这个摸索,以便我能够以以下格式呈现数据:
apple 2
orange 1
我尝试过创建两个数组,但都失去了控制。您可以通过迭代
水果
值并增加计数器:
var result = {};
for (var i = 0, n = fruit.length; i < n; i++) {
if (typeof result[fruit[i]] === 'undefined') {
result[fruit[i]] = 1;
} else {
result[fruit[i]]++;
}
}
console.log(result); // Object {apple: 2, orange: 1}
var result={};
for(变量i=0,n=fruit.length;i
这是一种方法:
var fruit = ['apple', 'apple', 'orange'];
var occurences = {};
for (var index = 0; index < fruit.length; index++) {
var value = fruit[index];
occurences[value] = occurences[value] ? occurences[value] + 1 : 1;
}
console.log(occurences);
var-fruit=['apple','apple','orange'];
变量发生={};
对于(var指数=0;指数<果长;指数++){
var值=水果[指数];
发生[值]=发生[值]?发生[值]+1:1;
}
console.log(事件);
记录的输出是一个包含apple:2,orange:1}
的对象,您可以在这里看到:var-fruits=['apple','apple','orange'];
var result={};
对于(变量i=0;i
您可以通过简化来简洁地执行此操作:
function count(xs) {
return xs.reduce(function(a,e) {
return a[e] = ++a[e]||1, a;
},{});
}
count(fruit); //=> {apple:2, orange:1}
请尝试下划线功能:
var fruit = [ 'apple' , 'apple' , 'orange' ];
var count = _.countBy(fruit, function(el) {
return el;
});
它还有其他非常有用的功能。var-fruit=['apple','apple','orange';
var fruit = [ 'apple' , 'apple' , 'orange' ];
var counts = {};
for(var i =0; i < fruit.length;i++){
counts[fruit[i]] = (counts[fruit[i]]) ? counts[fruit[i]] + 1:1;
}
变量计数={};
对于(变量i=0;i
JS Fiddle:向我们展示你已经尝试过的东西。我正要发布我自己的
reduce
,但后来我看到了那一小段美丽…-下划线也同样重要。这是一个不错的库,是的,但是对于所请求的功能来说可能有点太多了。
var fruit = [ 'apple' , 'apple' , 'orange' ];
var counts = {};
for(var i =0; i < fruit.length;i++){
counts[fruit[i]] = (counts[fruit[i]]) ? counts[fruit[i]] + 1:1;
}