Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const one = { data: 1 };
- const two = { data: 2 };
- const three = { data: 3 };
- const four = { data: 4 };
- const arr1 = [one, two, three, four];
- const arr2 = [1, 2, 3, 4];
- const arr3 = [{ data: 1 }, { data: 2 }, { data: 3 }, { data: 4 }];
- Array.prototype.remove = function(elToRemoving) {
- const id = this.findIndex((el, id, arr) => {
- if (typeof el === 'object' && typeof elToRemoving === 'object') {
- return JSON.stringify(el) === JSON.stringify(elToRemoving);
- };
- return el === elToRemoving;
- });
- if (id === -1) {
- return -1;
- };
- return this.splice(id, 1);
- };
- arr1.remove(two);
- arr2.remove(2);
- arr3.remove(two);
- Преимущество - удобство повторного использования, но может вызывать конфликты с другими библиотеками и, к примеру, если вызвать код for (i in [1,2,3]) то i будет на одной из итераций равно remove, что также может создать проблему, это и является недостатками. Альтернативным решением я могу предложить метод remove(array, element) объявленный выше (в объекте-родителе), передавать ему массив и удаляемый элемент, для удобства его можно вынести в отдельный файл и импортировать там где необходимо использовать
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement