JSFiddle - React, Tailwind, and code Playground
by bartek
HTML
<script src="https://searls.github.io/jasmine-all/jasmine-all-min.js"></script>
JavaScript
window.GFT = {
forEach: function(collection, fn, context) {
try {
for (var i = 0; i < collection.length; i++) {
if (i in collection) {
fn.call(context, collection[i], i, collection);
}
}
} catch (e) {
if (e !== '__break__') throw e;
}
return collection;
},
create: function(number, fn) {
var results = [];
for (var i = 0; i < number; i++) {
results.push(fn.call(number, i));
}
return results;
},
map: function(arr, fn, context) {
var results = [];
GFT.forEach(arr, function(value, index) {
results.push(fn.call(context, value, index));
});
return results;
},
every: function(arr, fn, context) {
var result = true;
this.forEach(arr, function(value, index) {
result = result && !!fn.call(context, value, index, arr);
if (!result) throw '__break__';
});
return result;
},
none: function(arr, fn, context) {
var result = true;
this.forEach(arr, function(value, index) {
result = result && !fn.call(context, value, index, arr);
if (!result) throw '__break__';
});
return result;
},
uniq: function(arr, fn, context) {
var results = [];
this.forEach(arr, function(value, index) {
var integer = fn.call(context, value, index);
if (results.indexOf(integer) === -1) {
results.push(value);
}
});
return results;
},
add: function(arr) {
return arr.concat([].slice.call(arguments, 1));
}
};
describe('Module test', function() {
xit('create', function() {
var newArr = GFT.create(5, function(index) {
return index + 5;
});
expect(newArr).toEqual([5, 6, 7, 8, 9]);
});
xit('map', function() {
var arr = [1, 2, 3, 4, 5];
var newArray = GFT.map(arr, function(value, index, array) {
return value * 2;
}, {
context: true
});
expect(newArray).toEqual([2, 4, 6, 8, 10]);
});
xit('every', function() {
var arr =...