Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. if (!Array.prototype.filter) {
  2. Array.prototype.filter = function(fun/*, thisArg*/) {
  3. 'use strict';
  4.  
  5. if (this === void 0 || this === null) {
  6. throw new TypeError();
  7. }
  8.  
  9. var t = Object(this);
  10. var len = t.length >>> 0;
  11. if (typeof fun !== 'function') {
  12. throw new TypeError();
  13. }
  14.  
  15. var res = [];
  16. var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
  17. for (var i = 0; i < len; i++) {
  18. if (i in t) {
  19. var val = t[i];
  20.  
  21. // NOTE: Technically this should Object.defineProperty at
  22. // the next index, as push can be affected by
  23. // properties on Object.prototype and Array.prototype.
  24. // But that method's new, and collisions should be
  25. // rare, so use the more-compatible alternative.
  26. if (fun.call(thisArg, val, i, t)) {
  27. res.push(val);
  28. }
  29. }
  30. }
  31.  
  32. return res;
  33. };
  34. }
  35.  
  36. var array = [];
  37. array[3] = 10;
  38. console.log(array.length);
  39. // 4
  40.  
  41. for (var i = 0; i < array.length; i += 1) {
  42. console.log(i, array[i]);
  43. }
  44.  
  45. 0 undefined
  46. 1 undefined
  47. 2 undefined
  48. 3 10
  49.  
  50. for (var i = 0; i < array.length; i += 1) {
  51. if (i in array) {
  52. console.log(i, array[i]);
  53. }
  54. }
  55.  
  56. 3 10
  57.  
  58. var a = ["hello", "howdy", "welcome"];
  59.  
  60. delete greetings[1];
  61.  
  62. "0" in a; // true
  63. "1" in a; // false
  64. "2" in a; // true
  65.  
  66. Array.prototype.myFilter = function(callBack) {
  67. let newArray = [];
  68. for (let i = 0; i < this.length; i++) {
  69. let result = callBack(this[i], i, this);
  70. if (result) {
  71. newArray.push(this[i]);
  72. }
  73. }
  74. return newArray;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement