Quería crear un bucle for que hiciera un patrón como este.
* two tree four five one * tree four five one two * four five one two tree * five one two tree four * * * tree four five one * * four five one two * * five one two tree * * * * * four five one * * * five one two * * * * * * * five one * * * * * * * * *El problema es que la longitud de la matriz puede cambiar en cualquier momento de
const temp = ["uno","dos","tres","cuatro","cinco"];
a
const temp = ["uno","dos","tres","cuatro"]; o const temp = ["uno","dos","tres"];
Esto es lo que tengo hasta ahora
const temp = ["one","two","three","four","five"]; let arrayResult = []; for(let y=0;y<temp.length;y++){ let tempArr = temp.slice(); tempArr[x] = "*"; arrayResult.push(tempArr); } console.log(arrayResult);Ya casi has llegado. Solo tiene que usar 2 bucles para crear todo el patrón.
const temp = ["one","two","three","four","five"]; let arrayResult = [] for(let i = 0; i< temp.length; i++){ for(let j = 0; j< temp.length - i; j++){ let tempArr = temp.slice(); let stars = Array(i+1).fill('*') tempArr.splice(j, i+1, ...stars); arrayResult.push(tempArr); }}Vota a favor si te ayudó :)
Otro enfoque usando flatMap y reduce.
const data = ["one", "two", "three", "four", "five"]; const output = data.flatMap((_, i, arr) => arr.reduce((carry, _, idx) => { if (idx < arr.length - i) { const temp = arr.slice(); for (let j = 0; j < i + 1; j++) { temp[idx + j] = "*"; } carry.push(temp); } return carry; }, []) ); console.log(output);