gpt4 book ai didi

javascript - 编写一个 JavaScript 函数,获取指定字符串中每个字母出现的次数

转载 作者:行者123 更新时间:2023-11-28 13:03:00 24 4
gpt4 key购买 nike

“编写一个 JavaScript 函数来获取指定字符串中每个字母出现的次数。”我已经尝试过这种方法,但我的所有输出都是 0,我真的不明白为什么。

我的想法是:按字母顺序排列 - 因此,如果一个字母与下一个字母相同,计数器就会增加。当不相同时,它会记录该字母、它出现的次数并重置计数器。

顺便说一句,我不知道如何让它读取只出现一次的字母。你能帮忙吗?

function count(string) {
let string1 = string.split("").sort().join("");
let counter = 0;
for (let i = 0; i < string.length; i++) {
if (string1[i] == string[i + 1]) {
counter++;
} else {
console.log(string1[i] + " " + counter);
counter = 0;
}
}
}
count("thequickbrownfoxjumpsoverthelazydog");

最佳答案

代码中有两个小错误。

  • 匹配条件应为string1[i] == string1[i + 1]
  • 启动值为 1 的计数器,因为每个值都会至少出现一次。

function count(string) {
let string1 = string.split("").sort().join("");
let counter = 1;
for (let i = 0; i < string.length; i++) {
if (string1[i] == string1[i + 1]) {
counter++;
} else {
console.log(string1[i] + " " + counter);
counter = 1;
}
}
}
count("thequickbrownfoxjumpsoverthelazydog");

我建议您使用不同的方法,该方法将使用 .reduce 并返回一个很好的计数对象。

function count(string) {
return string.split("").reduce(
(acc, el) => {
if(acc.hasOwnProperty(el))
acc[el]++;
else
acc[el] = 1;
return acc;
}, {}
)
}
var data = count("thequickbrownfoxjumpsoverthelazydog");
console.log(data);

关于javascript - 编写一个 JavaScript 函数,获取指定字符串中每个字母出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com