计算javascript中从数组到对象数组的重复值

计算javascript中从数组到对象数组的重复值,javascript,arrays,reactjs,object,Javascript,Arrays,Reactjs,Object,目前,我得到了这样一个数组: uniqueCount = [a,a,b,c,d,a,a]; 如何计算阵列中有多少个a、b、c?我希望得到类似于对象数组格式的结果: [{key: "a", count: 4} {key: "b", count: 1} {key: "c", count: 1} {key: "d", count: 1}] 霉菌代码: var current = null; var count = 0; for (var i = 0; i < uniqueCount

目前,我得到了这样一个数组:

 uniqueCount = [a,a,b,c,d,a,a];
如何计算阵列中有多少个a、b、c?我希望得到类似于对象数组格式的结果:

[{key: "a", count: 4}
 {key: "b", count: 1}
 {key: "c", count: 1}
 {key: "d", count: 1}]
霉菌代码:

var current = null;
var count = 0;
 for (var i = 0; i < uniqueCount .length; i++) {
    if (uniqueCount [i] != current) {
      if (count > 0) {
        result.push({
          key: current,
          count: count
        });
      }
      current = uniqueCount [i];
      count = 1;
    } else {
      count++;
    }
  }
  if (count > 0) {
    result.push({
      key: current,
      count: count
    });
  }

谢谢。

您只需正确应用条件,检查此代码段,首先,我们在数组中找到它的名称
f.key==m
。如果找到,则将其增加到1(
uniqueArray[index].count+=1
),否则添加到具有count 1的对象中

const数组=['a','a','b','c','d','a','a'];
常量uniqueArray=[];
array.forEach((m)=>{
const obj={key:m,count:1};
const index=uniqueArray.findIndex((f)=>{return f.key==m;});
index==-1?uniqueArray.push(obj):uniqueArray[index]。计数+=1;
});

console.log(uniqueArray)
将数组简化为映射,然后使用
array.from()
转换为对象数组:

const数组=['a','a','b','c','d','a','a']
const count=Array.from(
array.reduce((r,c)=>r.set(c,(r.get(c)| | 0)+1),newmap(),
(([key,count])=>({key,count}))
)

console.log(count)
首先计算
uniqueCount
数组中出现的字符数。然后使用
map
生成对象的结果数组,如下所示

var uniqueCount=['a','a','b','c','d','a','a'];
var duplicateCount={};
uniqueCount.forEach(e=>duplicateCount[e]=duplicateCount[e]?duplicateCount[e]+1:1);
var result=Object.keys(duplicateCount).map(e=>{return{key:e,count:duplicateCount[e]});

控制台日志(结果)
您应该使用
lodash
处理复杂的数据转换,如您的目标:

console.log(
  _.chain(uniqueCount)
  .groupBy()
  .map((value, key) => ({ key: key, count: value.length}))
  .value()
);

Lodash文件:

到目前为止有什么努力吗?请发布您迄今为止所编写的代码。在过去两天内,我已经看到这个问题至少两次,每次都在原始数组的元素周围缺少引号。我想知道为什么…这看起来像一个面试问题…@ASDFGerte-很高兴知道。。。这是可疑的…@sharpieone或学校作业谢谢你的帮助support@CườngBờI’不客气@CườngBờ我建议你回答一个你知道的问题。
    uniqueCount = ["a","a","b","c","d","a","a"]
    count = {}
    uniqueCount.forEach(x => {
       if(count[x]) {
           count[x] += 1
       }
        else {
           count[x] = 1
        }
    })
    const result = Object.keys(count).map(x => { return {key:x, count:count[x]}})
    console.log(result)
console.log(
  _.chain(uniqueCount)
  .groupBy()
  .map((value, key) => ({ key: key, count: value.length}))
  .value()
);