daily pastebin goal
9%
SHARE
TWEET

Untitled

a guest Oct 13th, 2018 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const one = { data: 1 };
  2. const two = { data: 2 };
  3. const three = { data: 3 };
  4. const four = { data: 4 };
  5.  
  6. const arr1 = [one, two, three, four];
  7. const arr2 = [1, 2, 3, 4];
  8. const arr3 = [{ data: 1 }, { data: 2 }, { data: 3 }, { data: 4 }];
  9.  
  10. Array.prototype.remove = function(elToRemoving) {
  11.   const id = this.findIndex((el, id, arr) => {
  12.     if (typeof el === 'object' && typeof elToRemoving === 'object') {
  13.       return JSON.stringify(el) === JSON.stringify(elToRemoving);
  14.     };
  15.     return el === elToRemoving;
  16.   });
  17.  
  18.   if (id === -1) {
  19.     return -1;
  20.   };
  21.  
  22.   return this.splice(id, 1);
  23. };
  24.  
  25. arr1.remove(two);
  26. arr2.remove(2);
  27. arr3.remove(two);
  28.  
  29. Преимущество - удобство повторного использования, но может вызывать конфликты с другими библиотеками и, к примеру, если вызвать код for (i in [1,2,3]) то i будет на одной из итераций равно remove, что также может создать проблему, это и является недостатками. Альтернативным решением я могу предложить метод remove(array, element) объявленный выше (в объекте-родителе), передавать ему массив и удаляемый элемент, для удобства его можно вынести в отдельный файл и импортировать там где необходимо использовать
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top