proto-khamis

0.0.1 • Public • Published

proto-khamis

General purpose Library to prototype the Array object to utilize analysing data stored as array of objects

usage :
var proto = require('proto-khamis'); //require the Library
proto(); // load the Library
var testArray=[{"fName":"Adam","age":22,"rank":3,"lName":"juma"},
{"fName":"salim","age":33,"rank":2,"lName":"juma"},
{"fName":"mohd","age":25,"rank":5,"lName":"rida"}];

Then for any Array of objects within your code you may use the functions as detailed in below examples.

testArray.seek("lName","juma","fname","Adam") //returns :{"fName":"Adam","age":22,"rank":3,"lName":"juma"}

In case more than on object is found it returns an array of the found objects. e.g.:
testArray.seek("lName","juma") // note that you may use one or two seek parameters only.
it returns :[{"fName":"Adam","age":22,"rank":3,"lName":"juma"},
{"fName":"salim","age":33,"rank":2,"lName":"juma"}]

In case no objects where found it returns -1

if three arguments are used it will return the value of array of values for the third argument in the objects that meet the condition of the first two arguments e.g. :

testArray.seek("lName","rida","fname") //it will return "mohd"
testArray.seek("lName","juma","fname") //it will return ["Adam","salim"]




testArray.seekSlim // same as .seek but for the first search condition you may search partially e.g.
testArray.seekSlim("lName","ju","fname","Adam") //it returns {"fName":"Adam","age":22,"rank":3,"lName":"juma"}
testArray.seekSlim("lName","ri","fname") //it returns "mohd"



testArray.seekA() same as .seek but forces the return of an Array even if one result is found e.g.
testArray.seek("lName","juma","fname","Adam") //returns :[{"fName":"Adam","age":22,"rank":3,"lName":"juma"}]
it returns -1 if no results are found.

testArray.INDEX() same as seekA but returns the INDEX of the object in the array not the object and always returns an array or -1 e.g.:
testArray.INDEX("lName","juma") // it returns :[0,1]

testArray.maxOf() takes odd number of arguments (1,3 or 5)
if one argument is provided it seeks the maximum value of this argument.e.g:
testArray.maxOf("rank") // returns 5;
if 3 or 5 arguments are provided the considered maximum value is the last argument and the others are equivalence conditions e.g.
testArray.maxOf("lName","juma","fName","Adam","age") returns 22


testArray.minOf() // same as maxOf but with the minimum value.



testArray.rowOf(columnIndex,value)
// It may be replaced by seekSlim()
//returns the row that has the same "value" in the property with index that matches "columnIndex" e.g:
testArray.rowOf(2,33) returns {"fName":"salim","age":33,"rank":2,"lName":"juma"}
testArray.rowOf("age",33) returns {"fName":"salim","age":33,"rank":2,"lName":"juma"}
testArray.rowOf("fName","salim") returns {"fName":"salim","age":33,"rank":2,"lName":"juma"}
testArray.rowOf("fName","sal") returns {"fName":"salim","age":33,"rank":2,"lName":"juma"}
it returns an object if one item is found and an array if many and and empty array if none is found.


.numSort() // Sorts and Array of objects following one Numerical property e.g:
testArray.numSort("age") // if no second argument is provided it sorts Ascending .
testArray.numSort("age","A") or testArray.numSort("age","D") the second arguments takes only two options :
"A" for Ascending and "D" for Descending.

Readme

Keywords

none

Package Sidebar

Install

npm i proto-khamis

Weekly Downloads

0

Version

0.0.1

License

ISC

Last publish

Collaborators

  • mkhamis