JSFiddle - React, Tailwind, and code Playground
JavaScript
(function () {
console.time('test');
for (var i = 0; i < 100000; i++) {
var fn = function (str) {
var nch;
if (str.indexOf('!.') === -1) {
return str.split('.');
}
var path = [],
item = '',
ch = str.charAt(0),
pch;
for (var i = 0, l = str.length; i < l; i++) {
nch = str.charAt(i + 1);
if (ch === '.' && pch === '!') {
item += '.';
} else if (ch === '.' && pch !== '!') {
path.push(item);
item = '';
} else if (ch !== '!' || nch !== '.') {
item += ch;
}
pch = ch;
ch = nch;
}
path.push(item);
return path;
};
}
fn('asdf');
console.timeEnd('test');
})();