我有一个例如
的数组0: fname: "apple"
Count: 2;
1: fname: "banana"
Count: 2;
2: fname: "orange"
Count: 2;
3:fname: "kiwi"
Count: 1;
现在我想通过删除下面类型对象数组中的重复值来获取计数
{{1}}
任何人都可以帮助我获取此对象数组
答案 0 :(得分:0)
var Fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"];
var uniqueArr = Fruits.filter(function(elem, index, self) {
return index == self.indexOf(elem);
})
var resObjArr = [];
uniqueArr.forEach(function(ele){
var count = 0;
var resObj = {};
Fruits.forEach(function(eleF){
if(ele == eleF) count++;
})
resObj['fname'] = ele;
resObj['Count'] = count;
resObjArr.push(resObj);
})
console.log(resObjArr)
从数组中删除重复项。并计算主数组中的不同元素它出现的次数。然后将其推送到结果对象。
答案 1 :(得分:0)
短Array.prototype.reduce()
方法:
var fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"],
result = [];
fruits.reduce(function(r, i){
(r[i])? r[i].count += 1 : result.push((r[i] = {fname: i, count: 1}));
return r;
}, {});
console.log(result);

答案 2 :(得分:0)
arr = []
for(var i = 0; i < Fruits.length; i++){
if (arr.indexOf(Fruits[i]) == -1){
arr.push(Fruits[i])
}
}
objects = []
for (var a = 0; a < arr.length; a++){
var count = Fruits.filter(function(fruit) fruit == arr[a])
objects.push({"fname": arr[a], "count": count.length})
}
答案 3 :(得分:0)
var Fruits = ["apple","banana","apple", "orange","banana","kiwi","orange"];
var uniqueArr = new Set(Fruits);
var result = [];
uniqueArr.forEach(function(ele){
var count = 0;
var resObj = {};
Fruits.forEach(function(eleF){
if(ele == eleF)
count++;
})
resObj['fname'] = ele;
resObj['Count'] = count;
result.push(resObj);
})