logoots-utils
Version:
Helper providing several function manipulating strings or arrays
104 lines (102 loc) • 2.13 kB
JavaScript
module.exports = {
Result: {
B1AfterB2: 'B1AfterB2',
B1BeforeB2: 'B1BeforeB2',
B1InsideB2: 'B1InsideB2',
B2InsideB1: 'B2InsideB1',
B1ConcatB2: 'B1ConcatB2',
B2ConcatB1: 'B2ConcatB1'
},
RopesNodes: {
LEFT: 0,
RIGHT: 1
},
insert: function (s, index, string) {
if (index > 0) {
return s.substring(0, index) + string + s.substring(index, s.length);
}
return string + s;
},
del: function (s, begin, end) {
var str = '';
if(begin !== 0) {
str = s.substring(0, begin);
}
return str + s.substring(end + 1, s.length);
},
unset: function (arr, elt) {
var index = arr.indexOf(elt);
if(index > -1) {
arr.splice(index, 1);
}
},
pushAll: function(arr, elts) {
var i;
for(i=0; i<elts.length; i++) {
arr.push(elts[i]);
}
},
iterator: function(arr) {
var it = {
index: 0,
items: arr,
first: function() {
this.reset();
return this.next();
},
next: function() {
return this.items[this.index++];
},
hasNext: function() {
return this.index < this.items.length;
},
reset: function() {
this.index = 0;
},
};
return it;
},
getLast: function (arr) {
return arr[arr.length-1];
},
copy: function (arr) {
var copy = [];
var i;
for(i=0; i<arr.length; i++) {
if(typeof arr[i] === "number" || typeof arr[i] === "string") {
copy.push(arr[i]);
}
else if(arr[i].copy !== null && arr[i].copy !== undefined) {
copy.push(arr[i].copy());
}
else {
copy.push(arr[i]);
}
}
return copy;
},
occurrences: function (string, subString, allowOverlapping) {
var n;
var pos;
var step;
string += "";
subString += "";
if(subString.length<=0) {
return string.length+1;
}
n = 0;
pos = 0;
step = (allowOverlapping) ? (1) : (subString.length);
while(true) {
pos = string.indexOf(subString,pos);
if(pos>=0) {
n++;
pos += step;
}
else {
break;
}
}
return(n);
}
};