Я хочу сделать функцию, которая, учитывая строку , подсчитывает мне количество появлений каждого из ее символов С помощью моей функции ниже я 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)
:Этот метод чувствителен к регистру.
Надеюсь помог решить проблему, приветствую.