Tengo una matriz de cadenas donde necesito mostrar desde el segundo elemento en adelante. Pero dentro de cada elemento necesito mostrar más del segundo elemento. Decir

Tengo una matriz

function myFunction() {
    var fruits = ["BBanana", "BOrange", "TLemon", "TApple", "YMango"];
    var citrus = fruits.slice(1).join("<br/>"); //skip first item
    document.getElementById("demo").innerHTML = citrus;
}

La salida esperada es

Orange
Lemon
Apple
Mango

En lugar de

BOrange
TLemon
TApple
YMango

¿Cómo logro usar un rendimiento mejorado?

1
Code Guy 29 oct. 2017 a las 12:49

3 respuestas

La mejor respuesta

Después de cortar el primer elemento, use Array #map para crear una lista de elementos sin la primera letra usando String # substring, luego únete:

Mapa y luego unirse:

function myFunction() {
  var fruits = ["BBanana", "BOrange", "TLemon", "TApple", "YMango"];
  var citrus = fruits.slice(1)
    .map(function(str) {
      return str.substring(1);
    })
    .join("<br/>");
  demo.innerHTML = citrus;
}

myFunction();
<div id="demo"></div>
3
Ori Drori 29 oct. 2017 a las 09:54

Puede usar la función reducir, será menos código que en otros casos

function myFunction() {
    const fruits = ["BBanana", "BOrange", "TLemon", "TApple", "YMango"];   
    const temp = fruits.slice(1).reduce( (ac, item) => ac + `${item.slice(1)}<br/>`, '')

    document.getElementById("demo").innerHTML = temp;
}
3
Olga 30 oct. 2017 a las 15:28
var fruits = ["BBanana", "BOrange", "TLemon", "TApple", "YMango"];
    for(var i = 1; i < fruits.length; i++){
console.log(fruits[i].slice(1));
};
1
vicky patel 29 oct. 2017 a las 10:15