Advertisement
Guest User

Untitled

a guest
Oct 13th, 2018
120
0
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) объявленный выше (в объекте-родителе), передавать ему массив и удаляемый элемент, для удобства его можно вынести в отдельный файл и импортировать там где необходимо использовать
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement