⚖️ Returns a new array containing elements that are in either collection, but not in both (symmetric difference).
It uses isEql for deep comparison of values.
Venn Diagram
Syntax
import { symDiff } from '@opentf/std';
symDiff(
collections: unknown[][] = [],
by?: (val: unknown) => unknown
): unknown[]Parameters
collections: An array of arrays to compare.by: An optional iteratee invoked for each element to generate the criterion by which symmetric difference is computed.
Returns
A new array containing the unique symmetric difference of the collections.
Examples
const evens = [2, 4, 6, 8];
const squares = [1, 4, 9];
symDiff([evens, squares]) //=> [2, 6, 8, 1, 9]
const bucket1 = ['Fruits', 'Vegs', 'Eggs', 'Cookies', 'Nuts'];
const bucket2 = ['fruits', 'Snacks', 'cookies'];
symDiff([bucket1, bucket2], (v) => v.toLowerCase())
//=> [
// 'Vegs',
// 'Eggs',
// 'Nuts',
// 'Snacks',
// ]