1.0.1 • Published 6 years ago
@js-commons/super-set v1.0.1
SuperSet
SuperSet class extends Set and add some methods, such as higher-order function.
Installation
$ npm i @js-commons/super-setor
$ yarn add @js-commons/super-setUse in your script
const SuperSet = require('@js-commons/super-set')or
import SuperSet from '@js-commons/super-set'API
You can use Set's self methods and below additional methods.
Creation
SuperSet.empty()
const set = SuperSet.empty()
console.log(set) // {}SuperSet.of(...values)
const set = SuperSet.of('foo', 'bar')
console.log(set) // { 'foo', 'bar' }SuperSet.from(iterable)
const set = new Set(['foo', 'bar'])
const superSet = SuperSet.from(set)
console.log(superSet) // { 'foo', 'bar' }Intermediate operation
SuperSet.peek(callback)
const set = SuperSet.of('foo', 'bar')
const tmpArray = []
const peekedSet = set.peek(v => tmpArray.push(v))
console.log(peekedSet) // { 'foo', 'bar' }
console.log(tmpArray) // [ 'foo', 'bar' ]SuperSet.peek(callback, thisArg)
const set = SuperSet.of('foo', 'bar')
const thisArg = 'baz'
const tmpArray = []
const peekedSet = set.peek(function (v) {
tmpArray.push(v + this)
}, thisArg)
console.log(peekedSet) // { 'foo', 'bar' }
console.log(tmpArray) // [ 'foobaz', 'barbaz' ]SuperSet.filter(callback)
const set = SuperSet.of('foo', 'bar')
const filteredSet = set.filter(v => v.startsWith('f'))
console.log(filteredSet) // { 'foo' }SuperSet.map(callback)
const set = SuperSet.of('foo', 'bar')
const mappedSet = set.map(v => v + '_')
console.log(mappedSet) // { 'foo_', 'bar_' }Terminal operation
SuperSet.find(callback)
const set = SuperSet.of('foo', 'bar')
const value = set.find(v => v.startsWith('f'))
console.log(value) // fooonst set = SuperSet.empty()
const value = set.find(v => v.startsWith('f'))
console.log(value) // undefinedSuperSet.some(callback)
const set = SuperSet.of('foo', 'bar')
console.log(set.some(v => v.startsWith('f'))) // trueconst set = SuperSet.empty()
console.log(set.some(v => v.startsWith('f'))) // falseSuperSet.every(callback)
const set = SuperSet.of('foo', 'bar')
console.log(set.every(v => v.length === 3)) // trueconst set = SuperSet.of('foo', 'bar')
console.log(set.every(v => v.startsWith('f'))) // falseSuperSet.isEmpty()
const set = SuperSet.of('foo', 'bar')
console.log(set.isEmpty()) // falseconst set = SuperSet.empty()
console.log(set.isEmpty()) // trueSuperSet.isNotEmpty()
const set = SuperSet.of('foo', 'bar')
console.log(set.isNotEmpty()) // trueconst set = SuperSet.empty()
console.log(set.isNotEmpty()) // falseSuperSet.toArray()
const set = SuperSet.of('foo', 'bar')
const values = set.toArray()
console.log(values) // [ 'foo', 'bar' ]SuperSet.toSet()
const superSet = SuperSet.of('foo', 'bar')
const set = superSet.toSet()
console.log(set) // { 'foo', 'bar' }