【问题标题】:compute how many times the elements appear in the array [duplicate]计算元素在数组中出现的次数[重复]
【发布时间】:2018-11-22 19:49:32
【问题描述】:

输入:任意数组

输出:唯一元素及其数量

到目前为止,我能够找到独特的元素,但我无法弄清楚如何将它们与每个元素的计数相关联。有什么建议(尽可能不使用函数 - 刚刚开始,还没有使用函数)?

var arr = [3, 4, 4, 3, 3];
var new_arr = [];
for (i = 0; i < arr.length; i++) {
  if (new_arr.includes(arr[i])) {
    // pass
  } else {
    new_arr.push(arr[i]);
  }
}
console.log(new_arr);

【问题讨论】:

  • 其中一个解决方案是:一个特定元素的计数(您知道该元素)或者他们正在使用方法

标签: javascript arrays count


【解决方案1】:

使用对象而不是数组来跟踪计数。 key 是有问题的数字,value 是计数。

使用Array#reduce

const res = [3, 4, 4, 3, 3].reduce((acc,cur)=>{
  
  if(acc[cur]) acc[cur]++;
  else acc[cur] = 1;
  return acc;

}, {});

console.log(res);

或者没有任何方法:

var arr = [3, 4, 4, 3, 3];
var new_arr = {};
for (i = 0; i < arr.length; i++) {
  if (new_arr[arr[i]]) {
    new_arr[arr[i]]++;
  } else {
    new_arr[arr[i]] = 1;
  }
}
console.log(new_arr);

【讨论】:

  • 谢谢!对象建议也非常有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2016-04-21
  • 2014-09-30
  • 2019-09-24
相关资源
最近更新 更多