Supongamos que tengo una matriz:
const array = [ { name: "Name 1", numbers: 3 }, { name: "Name 2", numbers: 2 }, { name: "Name 3", numbers: 3 } ]Quiero que cada objeto con valor numérico se multiplique por su estado. Quiero esto:
// Expected Output const array2 = [ { name: "Name 1" }, { name: "Name 1" }, { name: "Name 1" }, { name: "Name 2" }, { name: "Name 2" }, { name: "Name 3" }, { name: "Name 3" }, { name: "Name 3" } ]Aquí cada objeto se multiplica por su valor numérico ¿Cómo puedo hacer eso?
Tu puedes hacer:
const array = [{name: "Name 1",numbers: 3},{name: "Name 2",numbers: 2},{name: "Name 3",numbers: 3}] const result = array.map(({ name, numbers }) => [...Array(numbers)].map(_ => ({ name }))).flat() console.log(result)for (longitud de la matriz) y while (algo no es 0)
const array = [ { name: "Name 1", numbers: 3 }, { name: "Name 2", numbers: 2 }, { name: "Name 3", numbers: 3 } ] function splitArray(arr) { let newArr = [], number = -1; for (let item of arr) { number = item.numbers; while (number--) { newArr.push(item.name); } } return newArr } console.log( splitArray(array) );Primero haga un bucle con el elemento de la matriz y obtenga los números y haga un bucle con los números dentro.
let newArray = []; for(i=0; i<array.length; i++){ //get item number var numberCount = array[i].numbers; for(j=0; j<numberCount.length; j++){ newArray.push(array[i].name); } }