Skip to content

Instantly share code, notes, and snippets.

@ujjwal-kr
Created December 22, 2021 00:48
Show Gist options
  • Select an option

  • Save ujjwal-kr/512945d3fd1d136191c922133f5e1e5b to your computer and use it in GitHub Desktop.

Select an option

Save ujjwal-kr/512945d3fd1d136191c922133f5e1e5b to your computer and use it in GitHub Desktop.
Symmetric difference between n number of sets
function sym() {
let sets = []
let calculated
for (let i = 0; i < arguments.length; i++) {
sets.push(arguments[i])
}
for (let i = 0; i < sets.length; i = i + 2) {
if (!calculated) {
let char = []
for (let j = 0; j < sets[i].length; j++) {
if (sets[i + 1].indexOf(sets[i][j]) == -1) {
char.push(sets[i][j])
}
}
for (let j = 0; j < sets[i + 1].length; j++) {
if (sets[i].indexOf(sets[i + 1][j]) == -1) {
char.push(sets[i + 1][j])
}
}
char = [...new Set(char)]
calculated = char
}
sets.shift()
sets.shift()
break
}
for (let i=0; i<sets.length; i++) {
let char = []
for (let j=0; j<calculated.length; j++) {
if(sets[i].indexOf(calculated[j]) == -1) {
char.push(calculated[j])
}
}
for (let j=0; j< sets[i].length; j++) {
if(calculated.indexOf(sets[i][j]) == -1) {
char.push(sets[i][j])
}
}
char = [...new Set(char)]
calculated=char
}
return calculated
}
console.log(sym([1, 2, 3, 100], [5, 2, 1, 4, 1000], [5000, 70], [12, 100], [111, 222, 4], [75, 80, 70]));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment