Respuesta 5 #22

Open
opened 2022-03-21 18:40:22 +01:00 by ghost · 4 comments
ghost commented 2022-03-21 18:40:22 +01:00 (Migrated from github.com)

Hola, mi respuesta:

const accentsList = ['à', 'é', 'í', 'ó', 'ú'];

function filterWordByAccents(word, accentsList) {
    const wordArray = Array.from(word.toLowerCase());
    const filteredWordArray = wordArray.filter(function(item, index, arr){
        const isInAccentsList = accentsList.includes(item);
            if (!isInAccentsList) {
                return item;
            }
    });
    return filteredWordArray.join('');
}

console.log(filterWordByAccents('estudió', accentsList));
console.log(filterWordByAccents('ESTUDIÓ', accentsList));
Hola, mi respuesta: ``` const accentsList = ['à', 'é', 'í', 'ó', 'ú']; function filterWordByAccents(word, accentsList) { const wordArray = Array.from(word.toLowerCase()); const filteredWordArray = wordArray.filter(function(item, index, arr){ const isInAccentsList = accentsList.includes(item); if (!isInAccentsList) { return item; } }); return filteredWordArray.join(''); } console.log(filterWordByAccents('estudió', accentsList)); console.log(filterWordByAccents('ESTUDIÓ', accentsList)); ```
tanrax commented 2022-03-22 14:02:31 +01:00 (Migrated from github.com)

Gracias por el esfuerzo!
Lamento comentarte que no funciona como esperaba. La idea no es quitar las letras con acentos, sino sustituirlos por su equivalencia: estudió --> estudio
Filter no es adecuado para esta labor. Y cuidado porque estas quitando las mayusculas.
Suerte!

Gracias por el esfuerzo! Lamento comentarte que no funciona como esperaba. La idea no es quitar las letras con acentos, sino sustituirlos por su equivalencia: estudió --> estudio Filter no es adecuado para esta labor. Y cuidado porque estas quitando las mayusculas. Suerte!
ghost commented 2022-03-23 09:23:13 +01:00 (Migrated from github.com)

¡Hola @tanrax!
¡Gracias por el comentario!
Lamento mucho. Lo siento por mi español.

Tienes razón - he entendido el reto de otra manera.
Necesito eliminar las tildes, claro.

Hay un motivo por el que el filter no es bueno aquí.
Yo he usado el filter con el map porque necesitamos hacer los cambios dentro del array.
Creo que hay unas soluciones más elegantes.
He comprobado - el reto está funcionando.
Comprueba mi respuesta nueva, por favor:

const accentsList = ['á', 'é', 'í', 'ó', 'ú', 'Á', 'É', 'Í', 'Ó', 'Ú'];
const nonAccentList = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];

function filterWordByAccents(word, accentsList, nonAccentList) {
    const wordArray = Array.from(word);
    const filteredWordArray = wordArray.filter(function(item, index, arr){
        return item
    }).map(function (item, index, arr) {
        const isInAccentsList = accentsList.includes(item);
        if (isInAccentsList) {
            indexOfAccent = accentsList.indexOf(item);
            return nonAccentList[indexOfAccent];
        } else {
            return item;
        }
    });
    return filteredWordArray.join('');
}

console.log(filterWordByAccents('Buenos días', accentsList, nonAccentList));

console.log(filterWordByAccents('Acento prosódico', accentsList, nonAccentList));
console.log(filterWordByAccents('Acento prosÓdico', accentsList, nonAccentList));

console.log(filterWordByAccents('Acento ortográfico', accentsList, nonAccentList));
console.log(filterWordByAccents('Acento ortogrÁfico', accentsList, nonAccentList));

console.log(filterWordByAccents('Acento diacrítico', accentsList, nonAccentList));
console.log(filterWordByAccents('Acento diacrÍtico', accentsList, nonAccentList));

¡Saludos!

¡Hola @tanrax! ¡Gracias por el comentario! Lamento mucho. Lo siento por mi español. Tienes razón - he entendido el reto de otra manera. Necesito eliminar las tildes, claro. Hay un motivo por el que el filter no es bueno aquí. Yo he usado el filter con el map porque necesitamos hacer los cambios dentro del array. Creo que hay unas soluciones más elegantes. He comprobado - el reto está funcionando. Comprueba mi respuesta nueva, por favor: ``` const accentsList = ['á', 'é', 'í', 'ó', 'ú', 'Á', 'É', 'Í', 'Ó', 'Ú']; const nonAccentList = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']; function filterWordByAccents(word, accentsList, nonAccentList) { const wordArray = Array.from(word); const filteredWordArray = wordArray.filter(function(item, index, arr){ return item }).map(function (item, index, arr) { const isInAccentsList = accentsList.includes(item); if (isInAccentsList) { indexOfAccent = accentsList.indexOf(item); return nonAccentList[indexOfAccent]; } else { return item; } }); return filteredWordArray.join(''); } console.log(filterWordByAccents('Buenos días', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento prosódico', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento prosÓdico', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento ortográfico', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento ortogrÁfico', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento diacrítico', accentsList, nonAccentList)); console.log(filterWordByAccents('Acento diacrÍtico', accentsList, nonAccentList)); ``` ¡Saludos!
tanrax commented 2022-03-23 14:41:23 +01:00 (Migrated from github.com)

¡Ahora sí! Fantástico, me gusta mucho 👏👏👏👏
Y has terminado justo a tiempo. Mañana, a por el siguiente reto.

¡Ahora sí! Fantástico, me gusta mucho 👏👏👏👏 Y has terminado justo a tiempo. Mañana, a por el siguiente reto.
ghost commented 2022-03-23 19:01:32 +01:00 (Migrated from github.com)

¡Maravilloso, me alegra que te guste mi respuesta! 🤝
Nos mantendremos en contacto.

¡Maravilloso, me alegra que te guste mi respuesta! 🤝 Nos mantendremos en contacto.
Sign in to join this conversation.