the item type
Used by the node REPL to display values. Most of the time should be the same as toString()
Add an element to this set.
Add multiple elements to this set.
Returns true if the predicate returns true for all the elements in the collection.
Returns true if there the predicate returns true for any element in the collection.
Matches each element with a unique key that you extract from it. If the same key is present twice, the function will return None.
also see Collection.groupBy
Returns true if the element you give is present in the set, false otherwise.
Returns a new Set containing the difference between this set and the other Set passed as parameter. also see ISet.intersect
Two objects are equal if they represent the same value, regardless of whether they are the same object physically in memory.
Call a predicate for each element in the collection, build a new collection holding only the elements for which the predicate returned true.
Calls the function you give for each item in the set, your function returns a set, all the sets are merged.
Reduces the collection to a single value using the associative binary function you give. Since the function is associative, order of application doesn't matter.
Example:
HashSet.of(1,2,3).fold(0, (a,b) => a + b);
=> 6
Reduces the collection to a single value. Left-associative.
Example:
Vector.of("a", "b", "c").foldLeft("!", (xs,x) => x+xs);
=> "cba!"
The initial value
A function taking the previous value and the current collection item, and returning an updated value.
Reduces the collection to a single value. Right-associative.
Example:
Vector.of("a", "b", "c").foldRight("!", (x,xs) => xs+x)
=> "!cba"
The initial value
A function taking the current collection item and the previous value , and returning an updated value.
Call a function for element in the collection.
Group elements in the collection using a classifier function. Elements are then organized in a map. The key is the value of the classifier, and in value we get the list of elements matching that value.
also see Collection.arrangeBy
Get a number for that object. Two different values may get the same number, but one value must always get the same number. The formula can impact performance.
Returns a new Set containing the intersection of this set and the other Set passed as parameter (the elements which are common to both sets) also see ISet.diff
true if the set is empty, false otherwise.
Returns whether this set is a subset of the set you give as parameter (will return true also if both sets are equal)
Returns the number of elements in the set.
Return a new collection where each element was transformed by the mapper function you give. The resulting set may be smaller than the source.
Apply the mapper function on every element of this collection. The mapper function returns an Option; if the Option is a Some, the value it contains is added to the result Collection, if it's a None, the value is discarded.
Compare values in the collection and return the largest element. Returns Option.none if the collection is empty.
also see Collection.maxOn
Call the function you give for each value in the collection and return the element for which the result was the largest. Returns Option.none if the collection is empty.
Vector.of({name:"Joe", age:12}, {name:"Paula", age:6}).maxOn(x=>x.age)
=> Option.of({name:"Joe", age:12})
also see Collection.maxBy
Compare values in the collection and return the smallest element. Returns Option.none if the collection is empty.
also see Collection.minOn
Call the function you give for each value in the collection and return the element for which the result was the smallest. Returns Option.none if the collection is empty.
Vector.of({name:"Joe", age:12}, {name:"Paula", age:6}).minOn(x=>x.age)
=> Option.of({name:"Paula", age:6})
also see Collection.minBy
Returns a pair of two collections; the first one will only contain the items from this collection for which the predicate you give returns true, the second will only contain the items from this collection where the predicate returns false.
Vector.of(1,2,3,4).partition(x => x%2===0)
=> [Vector.of(2,4), Vector.of(1,3)]
Reduces the collection to a single value by repeatedly calling the combine function. No starting value. The order in which the elements are passed to the combining function is undetermined.
Returns a new set with all the elements of the current Set, minus the elements of the iterable you give as a parameter. If you call this function with a HashSet as parameter, rather call 'diff', as it'll be faster.
If the collection contains a single element, return Some of its value, otherwise return None.
Call the function you give for each element in the collection and sum all the numbers, return that sum. Will return 0 if the collection is empty.
Vector.of(1,2,3).sumOn(x=>x)
=> 6
Converts this set to an array. Since a Set is not ordered and since this method returns a JS array, it can be awkward to get an array sorted in the way you'd like. So you can pass an optional sorting function too.
HashSet.of(1,2,3).toArray().sort()
=> [1,2,3]
HashSet.of(1,2,3).toArray({sortOn:x=>x})
=> [1,2,3]
HashSet.of(1,2,3).toArray({sortBy:(x,y)=>x-y})
=> [1,2,3]
You can also pass an array in sortOn, listing lambdas to several fields to sort by those fields, and also {desc:lambda} to sort by some fields descending.
Convert to an ES6 Set. You must provide a function to convert the key to a string, number or boolean, because with other types equality is not correctly managed by JS. https://stackoverflow.com/questions/29759480/how-to-customize-object-equality-for-javascript-set https://esdiscuss.org/topic/maps-with-object-keys
HashSet.of("a", "b").toJsSet(x=>x);
=> new Set(["a", "b"])
Converts this set to an list
Get a human-friendly string representation of that value.
Converts this set to an vector
Transform this value to another value type. Enables fluent-style programming by chaining calls.
Generated using TypeDoc
A generic interface for set-like implementations.