ES6. Union, intersection, difference

const a = ['html', 'css', 'js'],
    b = ['js', 'php', 'python'],
    union = [...new Set([...a, ...b])], // 'html','css', 'js', 'php', 'python'
    intersection = a.filter(x => b.includes(x)), // 'js'
    difference = a.filter(x => !b.includes(x)), // 'html','css'
    symdifference = [...a.filter(x => !b.includes(x)), ...b.filter(x => !a.includes(x))]; // 'html','css', 'php', 'python'

Альтернатива symdifference

[...a,...b].filter(x=>!(a.includes(x) && b.includes(x)))

Похожие записи

HTML атрибуты и DOM свойства

  • Значение HTML атрибута указывает начальное значение;
  • Значение DOM свойства является текущим значением;
  • Атрибуты инициализируют DOM свойства.

Не ставить фокус по клику

Проблема заключалась в следующем: когда имеется интерактивный элемент с :focus стилем и вы щелкаете по этому элементу, на нём остаётся focus стиль (outline обводка). У нативной кнопки всё работает as expected, но стоит её добавить любой стиль и, как побочный эффект, меняется её поведение.