String Recursion
by Matthew Day
HTML
<div ng-app="app">
<div ng-controller="SplitController as vm">
<!-- <ul>
<li ng-repeat="value in vm.someArr">{{value}}</li>
</ul> -->
<form ng-submit="vm.split(vm.string, vm.separator)">
<input type="text" placeholder="string" value="{{vm.string}}" />
<input type="text" placeholder="separator" value="{{vm.separator}}" />
<button type="submit">Submit</button>
</form>
<pre ng-if="vm.cycle[1]">{{vm.cycle | json}}</pre>
<div ng-if="vm.final">RESULT: <span>{{vm.final}}</span></div>
</div>
</div>
CSS
body {
color: #444;
}
input {
padding: 4px;
}
span {
color: crimson;
}
JavaScript
angular.module('app', []);
angular.module('app')
.controller('SplitController', function() {
var vm = this;
vm.string = '1/23/4567/abcd/e';
vm.separator ='/';
vm.cycle = {};
vm.final = '';
let _count = '0';
vm.split = ((string, separator) => {
let _index = string.indexOf(separator);
if(_index == -1) {
_count++;
vm.cycle[_count] = {};
vm.cycle[_count].beginningString = string;
vm.cycle[_count].newIndex = _index;
vm.cycle[_count].separatorIndex = string.indexOf(separator);
vm.cycle[_count].result = string;
vm.final += string;
return string;
}
_count++;
vm.cycle[_count] = {}
vm.cycle[_count].beginningString = string;
vm.cycle[_count].newIndex = _index;
vm.cycle[_count].separatorIndex = string.indexOf(separator);
vm.cycle[_count].result = string.slice(0, _index);
vm.cycle[_count].newStringPassedToFn = string.slice(_index + separator.length);
vm.final += string.slice(0, _index);
return string.slice(0, _index) + vm.split(string.slice(_index + separator.length), separator);
});
});