|
|
- Array.prototype.clean = function(deleteValue) {
- for (var i = 0; i < this.length; i++) {
- if (this[i] == deleteValue) {
- this.splice(i, 1);
- i--;
- }
- }
- return this;
- };
-
- /*
- Array.findRanges
-
- Turns this:
-
- ["a","a","a","b","b","c","c","c","c","c","a","a","c"]
-
- into this:
-
- {
- "a":[
- {
- "from":0,
- "to":2
- },
- {
- "from":10,
- "to":11
- }
- ],
- "b":[
- {
- "from":3,
- "to":4
- }
- ],
- "c":[
- {
- "from":5,
- "to":9
- },
- {
- "from":12,
- "to":12
- }
- ]
- }
-
- */
-
- Array.prototype.findRanges = function() {
- var buckets = {};
- for(var i = 0; i < this.length; i++) {
- if(!(this[i] in buckets)) {
- buckets[this[i]] = [{
- from: i,
- to: i
- }]
- } else {
- var last = buckets[this[i]][ buckets[this[i]].length-1 ];
- if(i == last.to + 1) {
- last.to = i;
- } else {
- buckets[this[i]].push({
- from: i,
- to: i
- })
- }
- }
- }
- return buckets;
- };
-
- Object.values = function(obj){ return Object.keys(obj).map(function(key){return obj[key]}) };
|