Javascript 如何通过删除数组中的重复值来获取值计数

Javascript 如何通过删除数组中的重复值来获取值计数,javascript,Javascript,例如,我有一个数组 var Fruits : ["apple","banana","apple", "orange","banana","kiwi","orange"]; 现在,我想通过删除以下类型对象数组中的重复值来获得计数 0: fname: "apple" Count: 2; 1: fname: "banana" Count: 2; 2: fname: "orange" Count: 2; 3:fname: "kiwi" Count: 1; 有人能帮我得

例如,我有一个数组

var Fruits : ["apple","banana","apple", "orange","banana","kiwi","orange"];
现在,我想通过删除以下类型对象数组中的重复值来获得计数

0: fname: "apple"
    Count: 2;
1: fname: "banana"
    Count: 2;
2: fname: "orange"
    Count: 2;
3:fname: "kiwi"
    Count: 1;
有人能帮我得到这个对象数组吗
0: fname: "apple"
    Count: 2;
1: fname: "banana"
    Count: 2;
2: fname: "orange"
    Count: 2;
3:fname: "kiwi"
    Count: 1;
var-Fruits=[“苹果”、“香蕉”、“苹果”、“橙子”、“香蕉”、“猕猴桃”、“橙子”];
var uniqueArr=Fruits.filter(函数(elem、index、self){
返回索引==自索引(elem);
})
var Resobjar=[];
uniqueArr.forEach(函数(ele){
var计数=0;
var resObj={};
水果。forEach(函数(eleF){
如果(ele==eleF)计数++;
})
resObj['fname']=ele;
resObj['Count']=计数;
再推(再推);
})

console.log(resobjar)
Short
Array.prototype.reduce()
方法:

var fruits=[“苹果”、“香蕉”、“苹果”、“橙子”、“香蕉”、“猕猴桃”、“橙子”],
结果=[];
水果。减少(功能(r,i){
(r[i])?r[i].count+=1:result.push((r[i]={fname:i,count:1}));
返回r;
}, {});
控制台日志(结果)
arr=[]
对于(变量i=0;i
type object array-没有这样的类型。详细说明你想要的结构。是否需要对象数组?是。我想转换为数组对象。水果[0]应包含一个名为apple的fname,并计为2tanks you。这对我有用
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);
})