我想创建一个函数,给定一个字符串,计算其每个字符的出现次数。使用下面的函数,我contarCaracteresV1()
可以计算字符串的一个字符,但是我该如何为每个字符做呢? @Orici 的响应在我的函数中添加了一些东西contarCaracteresV2()
我看到了逻辑但是我有一个undefined
大写的字符我该如何纠正这个?...undefined
这是因为我所知道的删除重复字符的方法在删除字符时会留下一个带有元素的数组''
;我在答案中修复了它contarCaracteresV3()
https://es.stackoverflow.com/a/293573/120346
function contarCaracteresV2(str) {
let caracteres = [... new Set(str.toLowerCase())]
for(var i=0; i<caracteres.length; i++){
let arreglo=[]
str.split('').map(n => {
if(n.toLowerCase() === caracteres[i]){
arreglo.push(n)
}
})
console.log(`La cantidad de ${caracteres[i]} es: ${arreglo.length}`);
}
}
console.log(contarCaracteresV2("Abcaa"));
function contarCaracteresV1(str) {
let letra = str[0].toLowerCase();
let arreglo=[]
str= str.split('');
str.map(n => {
if(n.toLowerCase() === letra){
arreglo.push(n)
}
})
return `La cantidad de ${letra} es: ${arreglo.length}`
}
console.log(contarCaracteresV1("Abcaa"));
我会按照以下方式进行。
我希望它对你有帮助。
您可以应用的解决方案如下:
eg: str.replace(/\s/g, '') ===> string
)eg: [...string] ==> array
)reduce
用来遍历数组并传递一个对象作为第二个参数,我们将使用它来存储每个字母出现的次数 (eg: obj[char] = obj[char] + 1 || 1
)例子
在这里,我将返回对象中的每个计数字符。
它可以通过在一个数组中累积每个字母的出现次数来完成,其中索引是它的ascii代码。
要将字符串转换为ascii,您可以使用
letra.charCodeAt()
并获得相反的结果String.fromCharCode(codigo)
:此方法区分大小写。
我希望我已经帮助解决了这个问题,问候。