function intersection(A, B) { var m = A.length, n = B.length, c = 0, C = []; for (var i = 0; i < m; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < n) j++; while (C[k] !== A[ i ] && k < c) k++; if (j != n && k == c) C[c++] = A[ i ]; } return C; }
intersection ([1,2,3,7,9],[4,5,7,2,1,5]); // [1,2,7]
function diff(A, B) { var M = A.length, N = B.length, c = 0, C = []; for (var i = 0; i < M; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < N) j++; while (C[k] !== A[ i ] && k < c) k++; if (j == N && k == c) C[c++] = A[ i ]; } return C; }
diff([1,2,3,7,9],[4,5,7,2,1,5]); // [3,9] diff([4,5,7,2,1,5], [1,2,3,7,9]); // [4,5]
function sum(A, B) { var M = A.length, N = B.length, count = 0, C = []; C = A; count = M; var cnt = 0; for (var i=0;i<N;i++) { var plus = false; for (var j=0;j<M;j++) if (C[j] == B[i]) {plus = true; break;} if (plus === false) C[count++] = B[i]; } return C; }
sum([1,2,3,7,9],[4,5,7,2,1,5]); // [1,2,3,7,9,4,5] sum([4,5,7,2,1,5],[1,2,3,7,9]); // [4,5,7,2,1,5,3,9]
function symmetricDiff(A,B) { var M = A.length, N = B.length, c = 0, C = []; for (var i = 0; i < M; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < N) j++; while (C[k] !== A[ i ] && k < c) k++; if (j == N && k == c) C[c++] = A[ i ]; } for (var i = 0; i < N; i++) { var j = 0, k = 0; while (A[j] !== B[ i ] && j < M) j++; while (C[k] !== B[ i ] && k < c) k++; if (j == M && k == c) C[c++] = B[ i ]; } return C; }
symmetricDiff([1,2,3,7,9],[4,5,7,2,1,5]);// [3,9,4,5] symmetricDiff([1,2,3,4,5],[3,4,5,6,7]); // [1,2,6,7]
Source: https://habr.com/ru/post/248229/
All Articles