- nv-array-psfix
- get begin-with/end-with position info of a array(which be used as a pattern)
- npm install nv-array-psfix
const {info} = require("nv-array-psfix")
> var desc = info(["a","b","a","b","a","b","a"])
> desc
{
sz: 7,
vimp: Map(2) { 'a' => [ 0, 2, 4, 6 ], 'b' => [ 1, 3, 5 ] },
mat: [
[ 0, 2, 4, 6 ],
[ 1, 3, 5 ],
[ 2, 4, 6 ],
[ 3, 5 ],
[ 4, 6 ],
[ 5 ],
[ 6 ]
],
rmat: [
[
0, 1, 2, 3,
4, 5, 6
],
[ 2, 3, 4, 5, 6 ],
[ 4, 5, 6 ],
[ 6 ]
],
psfix: {
'["a","b","a","b","a"]': [ [Array], [Array] ],
'["a","b","a"]': [ [Array], [Array] ],
'["a"]': [ [Array], [Array] ]
},
pary: [
[ [Array], [Array], [Array] ],
[ [Array], [Array], [Array] ],
[ [Array], [Array], [Array] ]
]
}
>
> desc.psfix
{
'["a","b","a","b","a"]': [ [ 0, 5 ], [ 2, 7 ] ],
'["a","b","a"]': [ [ 0, 3 ], [ 4, 7 ] ],
'["a"]': [ [ 0, 1 ], [ 6, 7 ] ]
}
> desc.pary
[
[ [ 'a', 'b', 'a', 'b', 'a' ], [ 0, 5 ], [ 2, 7 ] ],
[ [ 'a', 'b', 'a' ], [ 0, 3 ], [ 4, 7 ] ],
[ [ 'a' ], [ 0, 1 ], [ 6, 7 ] ]
]
>
> console.dir(info(["a","b","a"]),{depth:null})
{
sz: 3,
vimp: Map(2) { 'a' => [ 0, 2 ], 'b' => [ 1 ] },
mat: [ [ 0, 2 ], [ 1 ], [ 2 ] ],
rmat: [ [ 0, 1, 2 ], [ 2 ] ],
psfix: { '["a"]': [ [ 0, 1 ], [ 2, 3 ] ] },
pary: [ [ [ 'a' ], [ 0, 1 ], [ 2, 3 ] ] ]
}
> console.dir(info(["a","b"]),{depth:null})
{
sz: 2,
vimp: Map(2) { 'a' => [ 0 ], 'b' => [ 1 ] },
mat: [ [ 0 ], [ 1 ] ],
rmat: [ [ 0, 1 ] ],
psfix: {},
pary: []
}
> console.dir(info(["a","b","c","d"]),{depth:null})
{
sz: 4,
vimp: Map(4) { 'a' => [ 0 ], 'b' => [ 1 ], 'c' => [ 2 ], 'd' => [ 3 ] },
mat: [ [ 0 ], [ 1 ], [ 2 ], [ 3 ] ],
rmat: [ [ 0, 1, 2, 3 ] ],
psfix: {},
pary: []
}