Симметрическая разность множеств на Javascript
Как и всё на этом языке, выполняется просто и удобно.
См. также: статья в энциклопедии юного сурка, мощность множества на JS, перестановки и комбинации на JS.
Вычисляем симметрическую разность для двух заданных массивов строк просто как ( A \ B ) U ( B \ A )
.
Вот код скрипта, который выдаст результат в элемент с id="symdifId"
, проверил в актуальном Fifefox и IE11:
<div id="symdifId"></div> <script type="text/javascript"> function relative_complement(A, B) { // в A, но не в B return A.filter ( function(elem) { return B.indexOf(elem) == -1; } ); } function symmetric_difference(A,B) { // в A или в B, но не в A и B return relative_complement(A,B).concat(relative_complement(B,A)); } //Определение данных: var a = ["1", "2", "3", "4", "5"]; var b = ["5", "3", "6", "4", "7"]; //Обработка: document.getElementById('symdifId').innerHTML = symmetric_difference (a,b); </script> <noscript> <div align="center"> Извините, для работы приложения нужен включённый Javascript </div> </noscript>
06.07.2018, 18:19 [2168 просмотров]