[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]
[[3, 2, 1], [5, 6, 4], [1, 5, 3], [2, 2, 2]]
const regex = /\(,\s*0\s*,\s*\)/g;
const str = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
const replacedStr = str.replace(regex, "], [");
console.log(replacedStr);
[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]
const str = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
// Заменяем все вхождения ', 0,' на '], ['
let replacedStr = str.replace(/, 0,/g, "], [");
// Удаляем последнее вхождение ', 0' (в конце строки перед закрытием скобки)
replacedStr = replacedStr.replace(/, 0\]/, "]");
// Для безопасной работы с JSON.parse обрамляем весь массив в дополнительные скобки
replacedStr = "[" + replacedStr + "]";
console.log(replacedStr); // Выводит строку в нужном формате
// Преобразуем строку в JSON
const jsonArray = JSON.parse(replacedStr);
console.log(jsonArray); // Выводит массив массивов
[[3, 2, 1], [5, 6, 4], [1, 5, 3], [2, 2, 2]]
const inString = "[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]";
let data = JSON.parse(inString);
let outData = [];
let outDataElem = [];
for (let i in data){
let el = data[i];
if(!el){ // Если 0
if(outDataElem.length){ // Если outDataElem уже что-то содержит
outData.push([...outDataElem]);
};
outDataElem = [];
continue;
};
outDataElem.push(el);
};
if(outDataElem.length){
outData.push([...outDataElem]);
};
console.log(outData);
(()=>{
const source = '[3, 2, 1, 0, 5, 6, 4, 0, 1, 5, 3, 0, 2, 2, 2, 0]';
// тест
console.log(groupItems(source));
function groupItems(source, groupSize = 3){
return (
(source??'')
.trim()
.replace('[', '').replace(']', '')
.split(',')
.map(e=>e.trim())
.filter(e=>e!=='0')
.reduce((arrays, cur, i)=>{
if(i % groupSize === 0){
return [
...arrays,
[cur]
];
} else{
return [
...arrays.slice(0, arrays.length-1),
[...arrays.at(-1), cur]
];
}
}, [])
);
}
})()