Last active
February 10, 2017 13:41
-
-
Save emanoelqueiroz/627d4ba949a917bc09f059322a6253cf to your computer and use it in GitHub Desktop.
Generate a summary
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function mergeArr(arr1, arr2) { | |
for (var i = 0; i < arr1.length; i++) { | |
for (var j = 0; j < arr2.length; j++) { | |
if (i !== j) | |
continue; | |
arr2[j] = arr1[i]; | |
} | |
} | |
return arr2; | |
} | |
function makeSummary(arr) { | |
var count = 0; | |
for (var i = 0; i < arr.length; i++) { | |
if (arr[i] == 'N') { | |
count++; | |
arr[i] = count + ''; | |
continue; | |
} | |
if (arr[i].indexOf('.') > -1) { | |
var newArr = []; | |
var oldCount = 0; | |
var arrX = arr[i].split('.'); | |
var arrOval = arr[i - 1].split('.'); | |
newArr = mergeArr(arrOval, arrX); | |
if (arr[i - 1].length > arr[i].length) { | |
var j = 1; | |
for (j; j < arr.length; j++) { | |
if (arr[i - j].length === arr[i].length) | |
break; | |
} | |
var arrPreviousVal = arr[i - j].split('.'); | |
oldCount = parseInt(arrPreviousVal[arrPreviousVal.length - 1]); | |
newArr[newArr.length - 1] = (oldCount + 1); | |
arr[i] = newArr.join('.'); | |
continue; | |
} | |
if (arr[i - 1].length === arr[i].length) { | |
oldCount = parseInt(arrOval[arrOval.length - 1]); | |
newArr[newArr.length - 1] = (oldCount + 1); | |
arr[i] = newArr.join('.'); | |
} else { | |
arr[i] = makeSummary(newArr).join('.'); | |
} | |
} | |
} | |
return arr; | |
} | |
String.prototype.contains = function(arg) { | |
return this.indexOf(arg) > -1; | |
}; | |
function getSumFromText(val) { | |
var pos = 0; | |
var aux = ''; | |
var arr = []; | |
for (var i = 0; i < val.length; i++) { | |
if (val[i] !== '[') | |
continue; | |
aux = ''; | |
pos = i + 1; | |
while (val[pos] !== ']') { | |
aux += val[pos]; | |
pos++; | |
} | |
if ((aux.contains('N') && aux.length === 1) || aux.contains('N.')) | |
arr.push(aux); | |
} | |
return arr; | |
} | |
function setSumToText(text, arr) { | |
var pos = 0; | |
var aux = ''; | |
var count = 0; | |
var iniTxt = ''; | |
var endTxt = ''; | |
for (var i = 0; i < text.length; i++) { | |
if (text[i] !== '[') | |
continue; | |
aux = ''; | |
pos = i + 1; | |
while (text[pos] !== ']') { | |
aux += text[pos]; | |
pos++; | |
} | |
if ((aux.contains('N') && aux.length === 1) || aux.contains('N.')) { | |
iniTxt = text.substring(0, i); | |
endTxt = text.substring((pos + 1), text.length); | |
text = iniTxt + arr[count] + endTxt; | |
count++; | |
} | |
} | |
return text; | |
} | |
function generateSummary(txt) { | |
var arr = getSumFromText(txt); | |
arr = makeSummary(arr); | |
return setSumToText(txt, arr); | |
} | |
var txt = '[N] asdasdasdas [TECNICO] da [N.N] asdasdasd [N] weqweasdqweqweasd [N.N] weqwewqeq [N.N] asqweasdqwe ' + | |
'[N.N.N] weqe qweq e [N.N] weqeasd a [N.N.N] weqweqwe qweqw [N.N] eqweqweqwe qweqw [N] sada sdqwew qe [N.N]'; | |
generateSummary(txt); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment