Guest User

Untitled

a guest
Apr 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. "use strict";
  2. //Answers on interesting exercises dKab/jasmine-tests
  3. //Test 1
  4. function sequence(start, step) {
  5. let st = start || 0;
  6. let sp = step || 1;
  7. let result = st - sp;
  8.  
  9. var next = function () {
  10. result += sp;
  11. st = result;
  12. };
  13.  
  14. return function () {
  15. next();
  16. return result;
  17. };
  18. };
  19.  
  20. //Test 2
  21. function take(fn, count) {
  22. let arr = [];
  23. for (let i = 0; i < count; i++)
  24. arr[i] = fn();
  25.  
  26. return arr;
  27. };
  28.  
  29. //Test 3
  30. function map(fn, array) {
  31. let arr = [];
  32. for (let i = 0; i < array.length; i++) {
  33. arr[i] = fn(array[i]);
  34. }
  35. return arr;
  36. };
  37.  
  38. //Test 4
  39. function fmap(mixin, fn) {
  40. return function (...args) {
  41. return mixin(fn(...args));
  42. };
  43. };
  44.  
  45. //Test 5
  46. function partial(fn, ...part) {
  47. return function (...args) {
  48. return fn(...part, ...args)
  49. }
  50. };
  51.  
  52. //Test 6
  53. function partialAny(fn, ...args) {
  54. let arr = args.slice();
  55.  
  56. return function (...part) {
  57. let i = 0;
  58. if (part.length !== 0) {
  59. for (let z = 0; z < arr.length; z++) {
  60. if (arr[z] === undefined)
  61. arr[z] = part[i++];
  62. }
  63. }
  64. arr = arr.concat(part.slice(i));
  65.  
  66. return fn(...arr);
  67. }
  68. };
  69.  
  70. //Test 7
  71. function bind(fn, context) {
  72. return function (...a) {
  73. return fn.apply(context, a);
  74. }
  75. };
  76.  
  77. //Test 8
  78. function pluck(objects, fieldName) {
  79. let arr = [];
  80. for (let key in objects) {
  81. arr[key] = objects[key][fieldName];
  82. }
  83. return arr;
  84. };
  85.  
  86. //Test 9
  87. function filter(arr, fn) {
  88. let filtered = [];
  89.  
  90. for(let i = 0; i in arr; i++) {
  91. if(fn(arr[i]))
  92. filtered.push(arr[i]);
  93. }
  94.  
  95. return filtered;
  96. };
  97.  
  98. //Test 10
  99. function count(obj) {
  100. let count = 0;
  101. for(let key in obj)
  102. count++;
  103.  
  104. return count;
  105. }
Add Comment
Please, Sign In to add comment