tengo un bucle for
for (let i = 0; i < itemsArray.length; i++) { newItemsArray.push(itemsArray[i]) }cuando registro en la consola newItemsArray obtengo lo mismo que itemsArray. Sin embargo, si hago algo como esto, obtengo una matriz vacía con valores indefinidos
for (let i = 0; i < 5; i++) { newItemsArray.push(itemsArray[i]) }Estoy tratando de agregar cierta cantidad de elementos en la carga de la página, así que 5 elementos hasta que veamos el quinto elemento y luego agregue otros 5. Si hay una solución mejor, sugiera :)
Gracias
Puedes hacer esto sin un bucle:
const starterItems = ["apple", "banana", "cherry", "mango", "orange"] let newItems = [...starterItems] // if you want to add extra 5 items: newItems = [...newItems, ...starterItems]Esta es la característica de ES6, puede leer más sobre ella aquí: Operador de propagación en MDN
Editar: si desea obtener una parte de su matriz, puede usar el método de filtro así:
let itemsLimit = 5 newItemsArray = itemsArray.filter((item, index) => index < itemsLimit) // later in the code you can change itemsLimit, // and then you need to filter the array again itemsLimit = 10 newItemsArray = itemsArray.filter((item, index) => index < itemsLimit)El código anterior incluirá todos los elementos de la matriz hasta que el índice de elementos "alcance" el límite de elementos. Esto creará la matriz que desea. Si también desea incluir la posición inicial, puede hacerlo así:
let starterPosition = 3 newItemsArray = itemsArray.filter((item, index) => index < itemsLimit && index >= starterPosition)Más sobre la función de filtro de Arrays en Javascript: método Filter Array en MDN