# nv-array-basic

> nv-array-basic ============ - nv-array-basic

Latest version **1.0.28** (published 2026-02-08) · ISC license · 0 weekly downloads

## Install

```sh
npm install nv-array-basic
pnpm add nv-array-basic
yarn add nv-array-basic
bun add nv-array-basic
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.0.28 |
| Published | 2026-02-08 |
| First published | 2020-11-18 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 18.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | ihgazni2 |

## Links

- npm: https://www.npmjs.com/package/nv-array-basic
- npm.io page: https://npm.io/package/nv-array-basic

## Recent versions

- 1.0.28 (latest) — 2026-02-08
- 1.0.27 — 2025-02-20
- 1.0.26 — 2025-02-20
- 1.0.25 — 2022-06-20
- 1.0.24 — 2022-06-19
- 1.0.23 — 2021-07-01
- 1.0.22 — 2021-06-25
- 1.0.21 — 2021-06-25
- 1.0.20 — 2021-06-11
- 1.0.19 — 2021-06-11
- 1.0.18 — 2021-05-09
- 1.0.17 — 2021-05-09
- 1.0.16 — 2021-05-02
- 1.0.15 — 2021-03-27
- 1.0.14 — 2021-02-13
- … 13 more at https://npm.io/package/nv-array-basic/versions

## README

nv-array-basic
============
- nv-array-basic 


install
=======
- npm install nv-array-basic 

usage
=====
    
example
-------

    const ary_bsc = require("nv-array-basic")
    var arr = [10,20,30]

    ary_bsc.head(arr)
    //10
    ary_bsc.tail(arr)
    //[20,30]

    ary_bsc.mid([1,2,3,4])
    //[2,3]

    ary_bsc.init(arr)
    //[10,20]
    ary_bsc.lst(arr)
    //30



    ary_bsc.some(arr,0,2)
    //[10,30]

    ary_bsc.some_not(arr,0,2)
    //[20]

    ary_bsc.odd(arr)
    //[20]

    ary_bsc.even(arr)
    //[ 10, 30 ]

    ary_bsc.interval([0,1,2,3,4,5,6,7],3)
    //[0,3,6]
    interval([0,1,2,3,4,5,6,7],0)
    //[]

    var narr = ary_bsc.clear(arr)
    //[]
    narr === arr 
    // true

    ary_bsc.validate_index([],0) === undefined
    ary_bsc.validate_index([1,2],0) === 0
    ary_bsc.validate_index([1,2],1) === 1

    ary_bsc.validate_value([1,2,3],1)
    //1
    ary_bsc.validate_value([1,2,3],10)
    //undefined
    
    validate_vi([1,10,2,3],{i:1,v:10})
    //{ i: 1, v: 10 }
    validate_vi([1,10,2,3],{i:0,v:10})
    //undefined


    ary_bsc.bin(5)
    //[ 1, 0, 1 ]
    ary_bsc.bin(5,4)
    //[ 0, 1, 0, 1 ]
    ary_bsc.bin(5,4,false)
    //[ 1, 0, 1, 0 ]
    ary_bsc.bin(5,2)
    //[ 1, 0 ]
    ary_bsc.bin(5,2,false)
    //[ 0, 1 ]

    ary_bsc.eq([1,2],[1,2])
    //true

    var m = [
        ['a','b','c','d','e'],
        [1,1,2,1,1],
        [{a:1},{a:1},{a:2},{a:1},{a:1}]
    ]
    
    > ary_bsc.combine(...m)
    [
      { '0': 'a', '1': 1, '2': { a: 1 } },
      { '0': 'b', '1': 1, '2': { a: 1 } },
      { '0': 'c', '1': 2, '2': { a: 2 } },
      { '0': 'd', '1': 1, '2': { a: 1 } },
      { '0': 'e', '1': 1, '2': { a: 1 } }
    ]
    >

    ary_bsc.freq([3,1,3,3,2,3,1],3)
    >4

    > arr
    [ undefined, <1 empty item>, 500, <2 empty items> ]
    > is_hole_element_at(arr,0)
    false
    > is_hole_element_at(arr,1)
    true
    > is_hole_element_at(arr,2)
    false
    > is_hole_element_at(arr,3)
    true
    > is_hole_element_at(arr,4)
    true
    >
    
    
    > get_nonhole_indexes(arr)
    [ 0, 2 ]
    >
    > has_hole(arr)
    true
    >
    > get_hole_indexes(arr)
    [ 1, 3, 4 ]
    
    > arr
    [ undefined, <1 empty item>, 500, <2 empty items> ]
    > fill_hole(arr)
    [ undefined, undefined, 500, undefined, undefined ]
    >


### safe get set

    > var arr = [10,11,12]
    > arr[5] = 15
    15
    > arr[3] = undefined
    undefined
    > arr
    [ 10, 11, 12, undefined, <1 empty item>, 15 ]
    >

    arr[3] === arr[4]   ////??? !!!!
    true

    > arr[6]
    undefined
    > arr.hasOwnProperty(6)
    false
    >
    > ary_bsc.is_hole_element_at(arr,4)
    true
    >

    > ary_bsc.safe_get(arr,6)
    Symbol(noexist)
    > ary_bsc.safe_get(arr,4)
    Symbol(hole)
    >



    > var ap = ary_bsc.creat_safe_getter_proxy(arr)
    > ap
    Proxy [
      [ 10, 11, 12, undefined, <1 empty item>, 15 ],
      { get: [Function: get] }
    ]
    >
    > ap[0]
    10
    > ap[3]
    undefined
    > ap[4]
    Symbol(hole)
    > ap[5]
    15
    > ap[6]
    Symbol(noexist)
    >

    ary_bsc.safe_set(arr,6,66666)
    >Uncaught Error: index_not_in_range

    var ap = ary_bsc.creat_safe_setter_proxy(arr)

    > ap
    Proxy [
      [ 10, 11, 12, undefined, <1 empty item>, 15 ],
      { set: [Function: set] }
    ]
    > ap[6] = 66666
    Uncaught Error: index_not_in_range


### every

    var arr = []
    every(arr,(r)=>r>0,true)
    > true

    every(arr,(r)=>r>0,false)
    > false

    > [].every((r)=>r>0)
    true                   //?!!!!!!
    >



API
====
- ary\_bsc.head(arr)
- ary\_bsc.tail(arr)
- ary\_bsc.mid(arr)
- ary\_bsc.init(arr)
- ary\_bsc.lsti(arr)
- ary\_bsc.lst(arr)
- ary\_bsc.slst(arr,v)
- ary\_bsc.ibfr(arr,index,v)                    //insert\_before
- ary\_bsc.iaft(arr,index,v)                    //insert\_after
- ary\_bsc.rm(arr,index)                        //remove element at index
- ary\_bsc.some(arr,...whiches)
- ary\_bsc.some\_not(arr,...whiches)
- ary\_bsc.clear(arr)
- ary\_bsc.validate\_index(arr,index)
- ary\_bsc.validate\_value(arr,value)
- ary\_bsc.validate\_vi(arr,d)                //d = {i:index,v:value}
- ary\_bsc.odd(arr)
- ary\_bsc.even(arr)
- ary\_bsc.interval(arr,interval)
- ary\_bsc.bin(n,lngth,head=true)
- ary\_bsc.eq(arr0,arr1)
- ary\_bsc.combine(...lists)
- ary\_bsc.mid\_index\_pair(arr)
- ary\_bsc.mid\_index\_left(arr)
- ary\_bsc.mid\_index\_right(arr)
- ary\_bsc.mid\_value\_pair(arr)
- ary\_bsc.mid\_value\_left(arr)
- ary\_bsc.mid\_value\_right(arr)
- ary\_bsc.to\_map(arr)
- ary\_bsc.to\_wmap(arr)
- ary\_bsc.cp(arr)

- ary\_bsc.is\_hole\_element\_at(arr,index)
- ary\_bsc.get\_nonhole\_indexes(arr) 
- ary\_bsc.get\_hole\_indexes(arr) 
- ary\_bsc.has\_hole(arr)
- ary\_bsc.fill\_hole(arr,v=undefined) 

- ary\_bsc.safe\_get(ary,index\_or\_key)
- ary\_bsc.safe\_set(ary,index\_or\_key,value)

- ary\_bsc.creat\_safe\_getter(ary)
- ary\_bsc.creat\_safe\_setter(ary)
- ary\_bsc.creat\_safe\_gsetter(ary)

- ary\_bsc.hole
- ary\_bsc.noexist

- ary\_foldl(f,acc,ary)
- ary\_foldr(f,ary,acc)

- ary\_every(ary,f,empty\_as=true)

LICENSE
=======
- ISC

---
_Source: https://npm.io/package/nv-array-basic · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
