您的位置:首页 > 其它

求字符串/数组出现次数最多的字符/元素

2020-06-26 04:24 127 查看

求字符串/数组中出现次数最多的字符/元素,以及他们的出现次数,可以采取以下方法,下列方法中不仅可以求出次数最多的字符/元素,还可以得出各个字符/元素出现的次数:

// 以下是求出字符串中各个字符出现的次数及次数最多的字符
var str = "abcadeabg";
var obj = {};
for (i = 0; i < str.length; i++) {
var chars = str.charAt(i);  // 得到索引为 i 的字符
// 如果obj里面已经有这个属性了 那么就将他的值 +1
// 如果还没有这个属性,那么就添加这个属性并且值为 1
// 最后得到的对象 obj 就是关于这个字符串的各个字符出现的次数
if (obj[chars]) {
obj[chars]++
} else {
obj[chars] = 1
}
}
console.log(obj);

// 得到关于这个字符串各个字符出现的次数的这个对象之后,就对这个对象进行遍历,得出出现最多的次数及其值
var strMax = 0; // 用于存放出现最多的次数
var strMost = ""; // 用于存放出现最多次数的那个字符
for (var k in obj) { // k是对象的属性名,obj[k]是属性值
if (obj[k] > strMax) {
strMax = obj[k];
strMost = k;
}
}
console.log("出现最多的是:", strMost); // 出现最多的是: a
console.log("次数是:", strMax); // 次数是: 3
// 同理 以下是求出数组中各个元素出现的次数及次数最多的元素
var arr = [1, 2, 3, 4, 5, 1, 2, 1, 3, 1];
var obj = {};

for (i = 0; i < arr.length; i++) {
var arrs = arr[i];
if (obj[arrs]) {
obj[arrs]++
} else {
obj[arrs] = 1;
}
}
console.log(obj);
// 得到关于这个数组各个元素出现的次数的这个对象之后,就对这个对象进行遍历,得出出现最多的次数及其值
var arrMax = 0; // 用于存放出现最多的次数
var arrMost = ""; // 用于存放出现最多次数的那个字符
for (var k in obj) { // k是对象的属性名,obj[k]是属性值
if (obj[k] > arrMax) {
arrMax = obj[k];
arrMost = k;
}
}
console.log("出现最多的是:", arrMost); // 出现最多的是: 1
console.log("次数是:", arrMax); // 次数是: 4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐