Поскольку у Javascript нет встроенного набора данных, кто-нибудь сталкивается с приличной библиотекой для наборов и задает операции, такие как объединение, пересечение и т.д.
Есть ли библиотека для набора данных в Javascript?
Ответ 1
Посмотрите JS.Set.
Класс JS.Set может использоваться для моделирования коллекций уникальных объектов. Набор гарантирует, что среди его членов нет дубликатов, и это позволяет использовать пользовательские методы равенства для сравнения, а также JavaScripts === operator.
Он содержит такие методы, как объединение, пересечение, слияние и т.д.
Ответ 2
Если вы просто хотите получить доступ к простым функциям объединения, пересечения, вы также можете попробовать Underscore.js встроенные функции массива. Он также предоставляет множество полезных утилит для манипулирования данными, поэтому попробуйте, если вы этого не сделали.
Ответ 3
Отъезд setjs. API обеспечивает основные операции, и библиотека неизменна по дизайну.
Отказ от ответственности: я автор.
Ответ 4
Наборы теперь являются родными в ES2015.
let a = new Set([1,2,3]);
let b = new Set([1,2,4]);
let intersect = new Set([...a].filter(i => b.has(i)));
let union = new Set([...a, ...b]);
Это работает с транслированием с использованием babel или только изначально в firefox.
Ответ 5
immutable-js выставить мощный set структура данных.
Простой пример для node.js, который вы можете увидеть в работе здесь.
im = require("immutable")
const mySet = im.Set([1, "a", {value: Symbol()}])
// the .add and .delete methods do not modify mySet, but return a new set instance instead.
const newSet = mySet
.add(42)
.delete(1)
console.info("Does mySet have 42?", mySet.has(42))
console.info("Does newSet have 42?", newSet.has(42))