例如:
input: var arr = ['a','b','c','a-5','c-2'];
output: var result = {'a':6,'b':1,'c':'3'} ;
我的解决方案是:
function countSameItem(arr) {
var counter = {};
for (var i = 0; i < arr.length; i++) {
var item = arr[i].split('-');
if (item.length === 1) {
counter[item] = (counter[item] + 1) || 1;
} else {
counter[item[0]] = (counter[item[0]] + parseInt(item[1]) || parseInt(item[1]));
}
}
return counter;
}
但我想考虑使用 lodash 的更简洁的解决方案
最佳答案
你可以在没有lodash的情况下简洁地做到这一点:
var result = ['a','b','c','a-5','c-2'].reduce(function(o, s) {
var a = s.split('-').concat(1);
return o[a[0]] = (o[a[0]] || 0) + +a[1], o;
}, Object.create(null));
关于javascript - 如何计算数组中具有特殊形式的相同项目(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31352743/