Skip to content

Instantly share code, notes, and snippets.

@robozavri
Last active September 10, 2020 09:05
Show Gist options
  • Save robozavri/9d9a3806d16630aa55da35bc8c0b9a2a to your computer and use it in GitHub Desktop.
Save robozavri/9d9a3806d16630aa55da35bc8c0b9a2a to your computer and use it in GitHub Desktop.
#javascript
function arr_diff (a1, a2) {
var a = [], diff = [];
for (var i = 0; i < a1.length; i++) {
a[a1[i]] = true;
// a = [a: true, b: true, x: true]
// console.log(a1[i]);
}
//console.log(a);
//return 'finish 1';
for (var i = 0; i < a2.length; i++) {
if (a[a2[i]]) {
console.log('ariso da cavshlio ' + a2[i]);
delete a[a2[i]];
} else {
a[a2[i]] = true;
console.log('ar arisooooo ' + a2[i]);
}
}
console.log(a);
return 'finish 2';
for (var k in a) {
diff.push(k);
}
return 'finish 3';
//return diff;
}
console.log(arr_diff(['a', 'b','x'], ['a', 'b', 'c', 'd']));
/* console.log(arr_diff(['a', 'b'], ['a', 'b', 'c', 'd'])); */
/* console.log(arr_diff("abcd", "abcde")); */
/* console.log(arr_diff("zxc", "zxc")); */
*********************** version two *************************************************************
function arr_diff (a1, a2) {
var a = [], b = [], diff = {}, detach = [], attach = [];
for(var key in a1) {
a[key] = true;
}
for(var key in a2) {
b[key] = true;
}
for(var key in a2) {
if (a[a2[key]]) {
delete a[a2[key]];
}else{
a[a2[key]] = true;
attach.push(a2[key]);
}
}
for(var key in a1) {
if(b[a1[key]]) {
} else {
//a[a2[i]] = true;
detach.push(a1[key]);
}
}
diff.detach = detach;
diff.attach = attach;
return diff;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment