bitarray
Memory efficient Boolean array implementation, very easy to use
Installation
npm install zo-bitarray --save
Usage
const BitArray = let ba = '1010101010' ba //1 ba //5 ba // ba.get(3) -> 1 ba // ba.get(3) -> 0 forlet v of ba //v is assigned to 1,0,1,0,1,0,1,0,1,0 in order ba
API
Constructor
- constructor(lenght, val=0)
- constructor(data)
10 //0000000000 10 1 //1111111111 1010101010 // 1010101010 let ba = '1010101010' // 1010101010 ba // 1010101010 let data = //Usually get from rawData() length: 100 rawdata: 1227133513 2454267026 613566756 9 ba = data // 100100100.....1001 100 bits //string start with '@' from compactData() ba = '@0001fnHfD-L1u=Zb$7!A00009' // 100100100.....1001 100 bits
Attribute
- length
- count()
- blockSize()
- blockBitNum()
Traversing Data
- for of
- forEach(cb)
- forExist(cb)
- entries()
let ba = '1010101010' let s = '' forlet v of ba s += v // s == '1010101010' s = '' ba // s == '1010101010' s = '' ba // s == '02468' s = '' for let i v of ba s += i + ':' + v + ',' // s == '0:1,1:0,2:1,3:0,4:1,5:0,6:1,7:0,8:1,9:0,'
Export Data
- toString()
- toArray()
- rawData()
- compactData()
let ba = '1010101010' ba //'1010101010' ba // [1,0,1,0,1,0,1,0,1,0] //More efficient data ba // {length:10,rawdata:[341]} //More compact data ba //'@0000a00041'
Bit Operation
get
(index)set
(index, val)and
(other)and
(index, val)or
(other)or
(index, val)not
(index)not
()xor
(index, val)xor
(other)
Other
fill
(val, begin, end)cover
(other, begin, end)swap
(other, begin, end)