JavaScript统计数组元素出现次数的两种方法

作者:半夏时间:2026-10-22 20:29:45浏览:433

本文介绍在JavaScript中统计数组内元素重复出现次数的两种常用实现方式。通过遍历数组构建计数对象,以及利用Array.prototype.reduce方法简化逻辑,展示了如何高效获取如{apple: 2, orange: 3}这样的统计结果。

统计数组元素出现次数

在实际开发中,经常需要统计数组中特定元素出现的频次。


var arr = ["apple","orange","apple","orange","pear","orange"];

最终得到的统计结果格式如下:{apple: 2, orange: 3, pear: 1}

二、代码实现

两种实现方式


  //统计一个数组中有多少个不重复的单词:
  // 不用reduce时: 
  var arr = ["apple","orange","apple","orange","pear","orange"]; 
  function getWordCnt(){ 
    var obj = {}; 
    for(var i= 0, l = arr.length; i< l; i++){ 
      var item = arr[i]; 
      obj[item] = (obj[item] +1 ) || 1; 
    } 
    return obj; 
  }
  console.log(getWordCnt());//{apple: 2, orange: 3, pear: 1}
  // 用reduce时: 
  var arr = ["apple","orange","apple","orange","pear","orange"]; 
  function getWordCnt(){ 
    return arr.reduce(function(prev,next){ 
      prev[next] = (prev[next] + 1) || 1; 
      return prev; 
    },{}); 
  } 
  console.log(getWordCnt());//{apple: 2, orange: 3, pear: 1}

补充知识点:

当访问对象中不存在的属性时,可以手动为其赋值。


  var muziObj = {};
  muziObj['name'] = 'muzidigbig';
  muziObj.age = 21;
  console.log(muziObj)//{name: "muzidigbig", age: 21}

如有不足之处,欢迎指正,希望本文能为您提供帮助!

总结

以上就是本文的全部内容,希望对大家的学习或工作有所帮助。感谢支持,如需了解更多相关内容,请查阅相关链接。

作者最新文章