JS:统计数组中每种元素出现的次数

方法一:

        1. 使用对象来统计次数,数组元素作为键名,出现的次数作为键值

        2. 首先对数组进行去重,写到一个新数组中

        3. 新旧数组元素进行比较,如果元素相同,就让对象的该元素属性值+1

相关函数:

  • charAt()——根据字符索引号获得该位置的字符
  • forEach()——数组遍历
  • indexOf()——根据数组元素获取该元素的索引号
  • push()——在数组的最后面添加一个元素,括号内为要添加进去的元素

方法二:

  1. 依然是使用对象来保存
  2. 使用forEach进行数组遍历
var str = "ABFEacMWwXZyYYDSmaFe";
var newstr = str.toLowerCase();
var arr = [];

//将字符串转换为数组
for (var i = 0; i < newstr.length; i++) {
    arr.push(newstr.charAt(i));
}

//使用forEach和对象字面量直接写入
var obj = {}
arr.forEach(function(item){
    obj[item] = obj[item] ? obj[item]+1 : 1
})
console.log(obj);

方法三:刷算法题刷到一个蛮有意思的答案,记录一下

        相关函数:split,reduce

var str = "ABFEacMWwXZyYYDSmaFe";
var newstr = str.toLowerCase();

let result = newstr.split('').reduce((temp,data)=>{
    temp[data]=temp[data]?temp[data] + 1: 1;
    return temp;
},{}) // reduce的第二个参数是传递给函数的初始值

你可能感兴趣的:(JS学习,javascript,开发语言)