Как преобразовать строку '1 1-4 1,4,6 12 7 20' в массив массивов, где каждый подмассив содержит числа в соответствии с определенными правилами: если числа представлены диапазоном, то он записывается, если числа просто перечислены через запятую, они также записываются в подмассив? Так, чтобы на выходе из '1 1-4 1,4,6 12 7 20' получилось [[1], [1,2,3,4], [1,4,6], [12], [7], [20]]. ```js const testData = '1 1-4 1,4,6 12 7 20'; const modifiedtestData = testData.split(' ') console.log(modifiedtestData.map((item, index) => { if (item.includes('-')) { const splittedArr = item.split('') const newArr = [] for (i = +splittedArr[0]; i <= splittedArr[splittedArr.length - 1]; i++) { newArr.push(i.toString()) } return newArr } else if (item.includes(',')) { return item.split(',') } else return [item] })); ```
Приведенный вами код почти правильно работает, однако есть ошибка в строке, где происходит разбиение чисел на диапазон. Замените `const splittedArr = item.split('')` на `const splittedArr = item.split('-')`, чтобы правильно разделить числа в диапазоне. Также внутри цикла замените `splitter` на `splittedArr`, чтобы корректно использовать разделенные числа. Поправленный код будет выглядеть следующим образом: ```js const testData = '1 1-4 1,4,6 12 7 20'; const modifiedtestData = testData.split(' ') console.log(modifiedtestData.map((item, index) => { if (item.includes('-')) { const splittedArr = item.split('-') const newArr = [] for (i = +splittedArr[0]; i <= +splittedArr[1]; i++) { newArr.push(i.toString()) } return newArr } else if (item.includes(',')) { return item.split(',') } else return [item] })); ``` После внесения этих изменений, вы получите желаемый результат: `[[ '1' ], [ '1', '2', '3', '4' ], [ '1', '4', '6' ], [ '12' ], [ '7' ], [ '20' ]]`