Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- //Answers on interesting exercises dKab/jasmine-tests
- //Test 1
- function sequence(start, step) {
- let st = start || 0;
- let sp = step || 1;
- let result = st - sp;
- var next = function () {
- result += sp;
- st = result;
- };
- return function () {
- next();
- return result;
- };
- };
- //Test 2
- function take(fn, count) {
- let arr = [];
- for (let i = 0; i < count; i++)
- arr[i] = fn();
- return arr;
- };
- //Test 3
- function map(fn, array) {
- let arr = [];
- for (let i = 0; i < array.length; i++) {
- arr[i] = fn(array[i]);
- }
- return arr;
- };
- //Test 4
- function fmap(mixin, fn) {
- return function (...args) {
- return mixin(fn(...args));
- };
- };
- //Test 5
- function partial(fn, ...part) {
- return function (...args) {
- return fn(...part, ...args)
- }
- };
- //Test 6
- function partialAny(fn, ...args) {
- let arr = args.slice();
- return function (...part) {
- let i = 0;
- if (part.length !== 0) {
- for (let z = 0; z < arr.length; z++) {
- if (arr[z] === undefined)
- arr[z] = part[i++];
- }
- }
- arr = arr.concat(part.slice(i));
- return fn(...arr);
- }
- };
- //Test 7
- function bind(fn, context) {
- return function (...a) {
- return fn.apply(context, a);
- }
- };
- //Test 8
- function pluck(objects, fieldName) {
- let arr = [];
- for (let key in objects) {
- arr[key] = objects[key][fieldName];
- }
- return arr;
- };
- //Test 9
- function filter(arr, fn) {
- let filtered = [];
- for(let i = 0; i in arr; i++) {
- if(fn(arr[i]))
- filtered.push(arr[i]);
- }
- return filtered;
- };
- //Test 10
- function count(obj) {
- let count = 0;
- for(let key in obj)
- count++;
- return count;
- }
Add Comment
Please, Sign In to add comment