myao =^_^=
Manage Your Array of Objects
Getting started:
npm install myao //or npm install --save myao
var myao = arrayofobj = name: 'Johnny' team: 'Black' age:28 id: '001' name: 'Simon' team: 'Red' age:32 id: '002' name: 'Leonardo' team: 'Blue' age: 18 id: '003' name: 'Don' team: 'White' age:40 id: '004' ; var myaoObj = myao;
getAll
myaoObj.getAll()
return - array
myaoObj; /* return[{ name: 'Johnny', team: 'Black', age:28, id: '001'},{ name: 'Simon', team: 'Red', age:32, id: '002'},{ name: 'Leonardo', team: 'Blue', age: 18, id: '003'},{ name: 'Don', team: 'White', age:40, id: '004'}]*/
add
myaoObj.add(toAdd, toTheBeginning)
toAdd - single object or array of objects
toTheBeginning >= 1.3.2 - boolean - true for 'add' to the beginning of data;
return - this
myaoObj;myaoObj; /* myaoObj.getAll() return:[ { name: 'Johnny', team: 'Black', age:28, id: '001'},{ name: 'Simon', team: 'Red', age:32, id: '002'},{ name: 'Leonardo', team: 'Blue', age: 18, id: '003'},{ name: 'Don', team: 'White', age:40, id: '004'},{ name: 'Bill', team: 'Blue', age: 26, id: '005' },{ name: 'Bill', team: 'Black', age: 23, id: '006' },{ name: 'Sue', team: 'White', age: 20, id: '007' }]*/ myaoObj; /* myaoObj.getAll() return:[{name: 'Peggy', team: 'Pink', age:21, id: '008'},{ name: 'Johnny', team: 'Black', age:28, id: '001'},{ name: 'Simon', team: 'Red', age:32, id: '002'},{ name: 'Leonardo', team: 'Blue', age: 18, id: '003'},{ name: 'Don', team: 'White', age:40, id: '004'},{ name: 'Bill', team: 'Blue', age: 26, id: '005' },{ name: 'Bill', team: 'Black', age: 23, id: '006' },{ name: 'Sue', team: 'White', age: 20, id: '007' }]*/
get
myaoObj.get(key, id)
key - string - object key
id - unique value
return - first matching object or null
var blackbill = myaoObj blackbillteam //'Black' //!!BUT!! var blackbill = myaoObj; blackbillteam //'Blue'
!! This method return object reference so:
var blackbill = myaoObj;blackbillhobby = 'country music'; /* myaoObj.getAll() return:[ { name: 'Johnny', team: 'Black', age:28, id: '001'},{ name: 'Simon', team: 'Red', age:32, id: '002'},{ name: 'Leonardo', team: 'Blue', age: 18, id: '003'},{ name: 'Don', team: 'White', age:40, id: '004'},{ name: 'Bill', team: 'Blue', age: 26, id: '005' },{ name: 'Bill', team: 'Black', age: 23, id: '006', hobby: 'country music' },{ name: 'Sue', team: 'White', age: 20, id: '007' }]*/
set >= 1.3.0
myaoObj.set(key, id, obj)
key - string - object key
id - unique value
obj - object with propertys to assign
return - this
var bluebill = myaoObj; myaoObj; console//{ name: 'Bill', team: 'Blue', age: 26, id: '005', job: 'Programmer' }
remove
myaoObj.remove(key, id)
key - string - object key
id - unique value
return - this
!! It removes FIRST matching object - to remove a group of objects use filter method
myaoObj; /* myaoObj.getAll() return[ { name: 'Johnny', team: 'Black', age: 28, id: '001' },{ name: 'Simon', team: 'Red', age: 32, id: '002' },{ name: 'Leonardo', team: 'Blue', age: 18, id: '003' },{ name: 'Don', team: 'White', age: 40, id: '004' },{ name: 'Bill', team: 'Blue', age: 26, id: '005' },{ name: 'Sue', team: 'White', age: 20, id: '007' } ]*/
replace >= 1.3.0
myaoObj.replace(key, id, obj)
key - string - object key
id - unique value
obj - object with propertys to assign
return - this
var bluebill = myaoObj; myaoObj; console;//{ name: 'Anonymous'} /* myaoObj.getAll() return[ { name: 'Johnny', team: 'Black', age: 28, id: '001' },{ name: 'Simon', team: 'Red', age: 32, id: '002' },{ name: 'Leonardo', team: 'Blue', age: 18, id: '003' },{ name: 'Don', team: 'White', age: 40, id: '004' },{ name: 'Anonymous' },{ name: 'Sue', team: 'White', age: 20, id: '007' } ]*/
overwrite >= 1.2.0
myaoObj.overwrite(newData);
newData - array
return - this
myaoObj; /* myaoObj.getAll() return[{name: "Peter", team:"Green"}]*/
filter
myaoObj.filter(key, val);
key - string - object key ; 'use '-' for revers filter
val - single filter value or array of values
return - new myao object with filtered data
var bluered = myaoObj; var notblue = myaoObj; /* bluered.getAll() return[ { name: 'Simon', team: 'Red', age: 32, id: '002' }, { name: 'Leonardo', team: 'Blue', age: 18, id: '003' }, { name: 'Bill', team: 'Blue', age: 26, id: '005' } ]*/ /* notblue.getAll() return[ { name: 'Johnny', team: 'Black', age: 28, id: '001' }, { name: 'Simon', team: 'Red', age: 32, id: '002' }, { name: 'Don', team: 'White', age: 40, id: '004' }, { name: 'Sue', team: 'White', age: 20, id: '007' } ]*/
sort
myaoObj.sort(key);
key - string - object key ; 'use '-' for revers sort
return - this
myaoObj; /* myaoObj.getAll() return[ { name: 'Leonardo', team: 'Blue', age: 18, id: '003' }, { name: 'Sue', team: 'White', age: 20, id: '007' }, { name: 'Bill', team: 'Blue', age: 26, id: '005' }, { name: 'Johnny', team: 'Black', age: 28, id: '001' }, { name: 'Simon', team: 'Red', age: 32, id: '002' }, { name: 'Don', team: 'White', age: 40, id: '004' } ]*/ //!!BUT!! myaoObj; /*myaoObj.getAll() return[ { name: 'Don', team: 'White', age: 40, id: '004' }, { name: 'Simon', team: 'Red', age: 32, id: '002' }, { name: 'Johnny', team: 'Black', age: 28, id: '001' }, { name: 'Bill', team: 'Blue', age: 26, id: '005' }, { name: 'Sue', team: 'White', age: 20, id: '007' }, { name: 'Leonardo', team: 'Blue', age: 18, id: '003' } ] */
each >= 1.1.0
myaoObj.each(callback)
callback - function with two parameters; first it is object in array, and second is index
myaoObj; /* myObj.getAll() return[ { name: 'Johnny', team: 'Black', age: 28, id: '001', nick: 'Jo0' }, { name: 'Simon', team: 'Red', age: 32, id: '002', nick: 'Si1' }, { name: 'Leonardo', team: 'Blue', age: 18, id: '003', nick: 'Le2' }, { name: 'Don', team: 'White', age: 40, id: '004', nick: 'Do3' }, { name: 'Bill', team: 'Blue', age: 26, id: '005', nick: 'Bi4' }, { name: 'Sue', team: 'White', age: 20, id: '007', nick: 'Su5' } ]*/
getValues
myaoObj.getValues(key)
key - string - object key ; 'use '-' for revers sort
return - array with values
var names = myaoObj; console; //[ 'Johnny', 'Simon', 'Leonardo', 'Don', 'Bill', 'Sue' ]
getLength
myaoObj.getLength()
return - number - data length
var myaolength = myaoObj; console; // 6