Как сравнить два множества (set) в JavaScript?

255
08 декабря 2017, 05:54

Как можно сравнить два множества (Set) в JavaScript?

let a = new Set([1, 2, 3]);
let b = new Set([1, 3, 2]);
let equal = ???

(два множества являются равными, если они состоят из одних и тех же элементов)

Answer 1

Самый простой вариант воспользоваться методом Array.from

const a = new Set([5, 1, 2, 3]);
const b = new Set([1, 3, 2, 5]);
let equal = isEqual(a, b);
function isEqual(a, b) {
  const a1 = setToArray(a),
        a2 = setToArray(b);
  return a1.length==a2.length && a1.every(function(v,i) { return v === a2[i]});
}
function setToArray(setInstance) {
  return Array.from(setInstance).sort((a ,b) => b - a);
}

ссылка на codepen прилагается - https://codepen.io/anon/pen/WXBqXP?editors=0011 а вообще, на англоязычном stackoverflow есть подобная статья https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript

READ ALSO
Uncaught TypeError: Cannot set property 'backgroundImage' of undefined

Uncaught TypeError: Cannot set property 'backgroundImage' of undefined

Uncaught TypeError: Cannot set property 'backgroundImage' of undefined

270
JS файл разбить на несколько файлов

JS файл разбить на несколько файлов

Как разделить это на файлы , если вообще не понятно ничего ?

211
React+Redux обновление стора

React+Redux обновление стора

Как отследить изменение стора в Redux? В интеренете нашел что используется метод componentWillReceivePropsЯ пытаюсь в нем вызвать метод который подгружает...

298