Estoy tratando de eliminar los últimos caracteres de un elemento en una matriz solo si cumplen una condición. Por ejemplo: si terminan en s, entonces quito la s. Si no, el elemento debe permanecer igual. Así es como estoy tratando de hacerlo:
let myList = [] for (let i = 0; i < arrays.length; i++){ if (arrays[i].substring(arrays[i].length - 1) == 's'){ item = arrays[i].slice(0,-1); myList.push(item); }else{ myList.push(arrays[i]); }Sin embargo, no funciona, ¿y idea de por qué?
Por aquí
const arr = ['Johns','Paul', 'ringos', 'Georges'] , myList = arr.map( name => /s$/.test(name) ? name.slice(0, -1) : name) ; console.log( myList )Por el código que has escrito, parece que le falta } . Y si te preguntas por qué no pasa nada en la terminal, es porque no has escrito console.log(myList) en tu código. Este código debería funcionar:
const arrays = ['Apples', 'Oranges', 'Bananas', 'Pear'] let myList = [] for (let i = 0; i < arrays.length; i++){ if (arrays[i].substring(arrays[i].length - 1) == 's') { item = arrays[i].slice(0,-1); myList.push(item); } else { myList.push(arrays[i]); } } console.log("List:", myList)