Доброго дня суток! Помогите написать скрипт разности 2-х массивов (не множеств). Т.е. допустим имеется 2 массива (не важно упорядочен или нет)
newArr = ['P','P','Q','R'];
oldArr = ['P','P', 'Q','Q','R'];
результатом разности должен быть 'Q'.
или
newArr = ['P','P','Q','R'];
oldArr = ['P','P', 'Q', 'p', 'Q','R', 'p'];
результатом разности должен быть 'Q', 'p', 'p'.
Необходимо учитывать что элементы повторяются, нашел кучу примеров, что в инете, что тут на форуме, но они все не учитывают повторения элементов, длины могут быть разные, но длина старого массива всегда больше длины нового массива.
Думал может сравнивать каждый элемент старого массива с новым, и если данный элемент есть в новом массиве, удалить этот элемент из старого массива и нового, и начать сравнивать сначала. таким образом к концу всех сравнений в старом массиве останутся элементы которых нет в новом. Но этот вариант не оптимальный как я думаю
P.S. новый массив всегда состоит из элементов старого массива, т.е. там не может быт такого:
newArr = [1,5,4,8];
oldArr = [5,1,9,8,10];
(в новом массиве не может быть числа 4, т.к. его нет в старом массиве)