ssv
- Opensource JavaScript for space separated values
- Uses simple methods you can explore online
- Coded universally for websites or Node.js
- Compresses
<600B
- Fully tested
download
<script src="ssv.js"></script>
package
npm install ssv
const ssv =
methods
ssv.all
ssv.and
ssv.any
ssv.at
ssv.blank
ssv.count
ssv.edit
ssv.gum
ssv.jam
ssv.not
ssv.or
ssv.say
ssv.split
ssv.state
ssv.xor
ssv.yolo
all
Test if SSV contains all search values
ssvallSSV="" search=""
ssvall"mark tom travis" "scott" // falsessvall"mark tom travis" "mark tom" // truessvall"mark tom travis" "mark scott" // false
and
- Get unique values present both in
left
andright
- Ideal for intersecting
ssv
ssv // ""ssv // ""ssv // "mark tom"
let many = "mark tom" "mark travis" "mark matt"many // "mark"
any
Test if SSV contains any search values
ssv
ssv // falsessv // truessv // truessv // true
at
Get the value at index
ssv
ssv // "mark"ssv // "tom"ssv // "travis"ssv // "tom"ssv // ""
blank
Test if SSV is blank
ssv
ssv // falsessv // truessv // truessv // falsessv // true
count
Count SSV values
ssv
ssv // 3ssv // 2
edit
- Edit an SSV string via an object or string
- Optimal for batch editing CSS classes
- Keys for falsey values are removed
- Keys for truthy values are added
- Removals process before adds
- Result is compact and unique
- Like
ssv.or
ifboss
is string ssv.state
usesssv.edit
ssv
ssv // "mark travis matt" ssv // "mark travis"
ssv // "mark tom travis"
let bosses = /* objects or strings */bosses // forwardbosses // backward
gum
Concatenate with compact space
ssv
ssv // "mark tom scott travis"ssv // "mark tom tom travis"
let many = "tom tom" null "travis travis" ""many // "tom tom travis travis"
jam
Compact excess space
ssv
ssv // "mark travis matt"ssv // "matt"ssv // "0 182"ssv // "-182"ssv // "182"ssv // ""ssv // "0"ssv // ""
not
- Get values in
left
that are not inright
- Ideal for removing values or diffing
ssv
ssv // "mark travis"ssv // "tom tom"ssv // "matt matt matt"ssv // "mark mark"ssv // "mark"
let many = "mark tom" "mark travis" "mark matt"many // "tom"
or
- Get unique values found in
left
orright
or both - Ideal for adding values or unioning
ssv
ssv // "mark tom travis"ssv // "mark tom travis"ssv // "matt mark"
let many = "mark tom" "mark travis" "mark matt"many // "mark tom travis matt"
say
Simply stringify unknown
ssv
ssv // ""ssv // ""ssv // "0"ssv // "NaN"ssv // "182"ssv // "tom"ssv // "true"ssv // "false"ssvssvssv
- Used internally when expecting strings
- Not intended for arrays or plain objects
- Join arrays instead like
[].join(" ")
- Plain objects may use
ssv.edit
orssv.state
split
Split SSV into dense array
ssv
ssv // ["mark", "tom", "travis"]ssv // ["mark", "tom"]ssv // ["0", "0", "182"]ssv // ["0"]ssv // []ssv // []ssv // []
state
- Get unique compact SSV string from state object or string
- Shorthand for
ssv.edit("", state)
- Like
ssv.yolo(state)
if string - Optimal for conditional CSS classes
ssv
ssv // "mark tom"ssv // "mark travis matt" ssv // "mark mark travis"
let states = /* objects or strings */ssv
xor
- Get unique values found in either
left
orright
but not both - Ideal for toggling values
ssv
ssv // "mark"ssv // "tom"ssv // "mark tom travis"ssv // "mark travis"ssv // "mark travis matt"ssv // "tom"ssv // "mark tom"
let many = "mark tom" "mark travis" "mark matt"many // "tom travis mark matt"many // "matt travis mark tom"
yolo
- Get unique SSV values
- Hella fast unique loop
- Be unique because yolo
- Case sensitive
ssv
ssv // "tom travis"ssv // "Na na"ssv // "na"