nv-array-basic

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

Usage no npm install needed!

<script type="module">
  import nvArrayBasic from 'https://cdn.skypack.dev/nv-array-basic';
</script>

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