1.0.1 • Published 2 years ago

nv-facutil-dual-cursor v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-facutil-dual-cursor

  • nv-facutil-dual-cursor simple util for start-index AND end-index

install

  • npm install nv-facutil-dual-cursor

usage

const creat = require("nv-facutil-dual-cursor")

example

    var dual = creat()

    > dual
    D { front: 0, back: 0 }
    >

    > dual.ff1()
    1
    > dual
    D { front: 1, back: 0 }
    >

    > dual.ffn(3)
    4
    > dual
    D { front: 4, back: 0 }
    >

    > dual.mid_
    2
    >
    > dual.ffn(2)
    6
    > dual
    D { front: 6, back: 0 }
    >

    > dual.fb1()
    5
    > dual
    D { front: 5, back: 0 }
    >


    > dual.bf1()
    1
    > dual
    D { front: 5, back: 1 }
    > dual.bfn(2)
    3
    > dual
    D { front: 5, back: 3 }
    > dual.bfn(8)                //invalid no effect

    > dual
    D { front: 5, back: 3}              
    >

    > dual.ffn(8)
    13
    > dual
    D { front: 13, back: 3 }
    >

    > dual.fbn(15)                 //invalid no effect
    13
    > dual
    D { front: 13, back: 3 }
    >

    > dual.db1()
    D { front: 12, back: 2 }
    > dual.dfn(3)
    D { front: 15, back: 5 }
    >


    > dual.mid_
    10
    > dual.fst_half_
    [ 5, 10 ]
    > dual.snd_half_
    [ 10, 16 ]
    >

    > dual.bf1()
    6
    > dual
    D { front: 15, back: 6 }
    >
    > dual.mid_
    null
    >
    > dual.fst_half_
    [ 6, 11 ]
    > dual.snd_half_
    [ 11, 16 ]
    >
    > dual.slice([10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170])
    [
       70,  80,  90, 100,
      110, 120, 130, 140,
      150, 160
    ]
    e

    > dual.fst_half_slice([10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170])
    [ 70, 80, 90, 100, 110 ]
    >


    > dual.snd_half_slice([10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170])
    [ 120, 130, 140, 150, 160 ]
    >

METHODS

    fb1         front-backforward-1-step
    fbn(n)      front-backforward-n-step
    ff1         front-frontforward-1-step
    ffn(n)      front-frontforward-n-step


    bb1         back-backforward-1-step
    bbn(n)      back-backforward-n-step
    bf1         back-frontforward-1-step
    bfn(n)      back-frontforward-n-step


    db1         both-backforward-1-step
    dbn(n)      both-backforward-n-step
    df1         both-frontforward-1-step
    dfn(n)      both-frontforward-n-step


    _xxx        without-check

    ////
    follow_me:          this.back = this.front
    wait_me:            this.front = this.back

    fst_half_     
         IF odd-length:      
             ---back...mid...front---        back...
         ELSE
             ---back...lmid,rmid...front---   back...lmid<included>    
    snd_half_           
         IF odd-length:
             ---back...mid...front---        ...front<included>
         ELSE
            ---back...lmid,rmid...front---   rmid...front<included>


    mid_     null IF even-length

    lmid_    null IF odd-length  
    rmid_    null IF odd-length


    x._bb1                  x._bbn                  x._bf1                  x._bfn
    x._db1                  x._dbn                  x._fb1                  x._fbn
    x.bb1                   x.bbn                   x.bf1                   x.bfn
    x.can_bb1               x.can_bbn               x.can_bf1               x.can_bfn
    x.can_db1               x.can_dbn               x.can_fb1               x.can_fbn
    x.db1                   x.dbn                   x.df1
    x.dfn                   x.fb1                   x.fbn                   x.ff1
    x.ffn                   x.follow_me             x.fst_half_             x.fst_half_slice
    x.has_mid               x.is_overlap            x.mid_                  x.slice
    x.snd_half_             x.snd_half_slice        x.wait_me

    x.back                  x.front

LICENSE

  • ISC