la cadena es algo como esto:
const string = '1-2-3-4-5-6-7-...-n';y necesito una matriz como esta:
const arr = ['1', '1-2', '1-2-3', '1-2-3-4', '1-2-...-n'];He entrado en esto hasta ahora:
const str = '1-2-3'; const arr = []; let actualValue = ''; const splitArray = str.split('-'); for (let i = 0; i < splitArray.length; i++) { if (actualValue) actualValue = actualValue + '-' + splitArray[i]; else actualValue = splitArray[i]; arr.push(actualValue); }¿Quizás esta solución te convenga?
const result = "1-2-3-4-5-6-7-8-9".split("-").reduce((prev, curr) => { const last = prev.slice(-1); last.push(curr); prev.push(last.join("-")); return prev; }, []); console.log(result);yo prefiero
const str = '1-2-3'; const arr = []; let actualValue = ''; const splitArray = str.split('-'); if (splitArray.length) { actualValue = splitArray[0]; arr.push(actualValue); } for (let i = 1; i < splitArray.length; i++) { actualValue = actualValue + '-' + splitArray[i]; arr.push(actualValue); } console.log(arr);para reducir el número de comparaciones.