JSFiddle - React, Tailwind, and code Playground
by shubham sharma
HTML
<button onclick="parseToArray()">parse</button>
<textarea id="parseit" rows="10" cols="50"></textarea>
<button onclick="myFunction()">data</button>
JavaScript
var final = [];
function parseToJson(data) {
console.log(data);
function addToJson(objAr) {
var string = "";
var jump = false;
for(var i=0;i<objAr.length;i++) {
console.log("i",i);
string += "/"+ objAr[i].value;
console.log(i,"out",objAr[i]);
if(typeof objAr[i+1] === "undefined" ) {
console.log(i,"inside",objAr[i+1],objAr);
final.push(string);
} else {
if(objAr[i].level == objAr[i+1].level) {
objAr.splice(i,1);
final.push(string);
addToJson(objAr);
}
function rmv(index) {
if(typeof objAr[index-1] !== "undefined"
&&objAr[index-1].level == objAr[index].level) {
objAr.splice(index-1,1);
i = index - 1;
rmv(i);
}
}
if(objAr[i].level > objAr[i+1].level) {
objAr.splice(i,1);
rmv(i);
final.push(string);
addToJson(objAr);
}
}
};
};
addToJson(data);
console.log(final);
};
function parseToArray() {
var str = " - List item\r\n\t - list item 2\r\n\t - list item 3\r\n\t\t - list item 4\r\n\t - list item 5\r\n\t - list item 6\r\n - list item 7\r\n\t - list item 8\r\n\t\t - list item 9".trim();
var strAr = str.split("\r\n");
var strObj =[];
for(i in strAr) {
// console.log('i', strAr[i]);
var tempStr = strAr[i];
var tempObj = {};
// console.log();
tempObj["level"] = (tempStr.match(/\t/g) || []).length;
tempObj["value"] = tempStr.replace(/\t/g,"").replace(/- /g, "").trim();
strObj.push(tempObj);
}
parseToJson(strObj)
};