UNPKG

arrow-utils

Version:

arrow-utils library binds array and object methods.Complex Array and Object operations are made simple

1 lines 9.67 kB
var thisCtrl=this,OBJECT_CTRL=require("./Object_Methods");function recreateObject(r,t,e){let n=t.shift();t.length?(r[n]||(r[n]={}),recreateObject(r[n],t,e)):r[n]=e}exports.Check_Array_isEmpty=function(r){return 0==r.length},exports.Array_Unique=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var t=new Set(r);return r=[],t.forEach(function(t){r.push(t)}),r}catch(r){return}},exports.Array_Object_Unique=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var t=r.map(function(r){return JSON.stringify(r)}),e=new Set(t),n=[];return e.forEach(function(r){n.push(JSON.parse(r))}),n}catch(r){return}},exports.Array_Sort=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;return r.sort(function(r,t){return r-t})}catch(r){return}},exports.Array_SortBy=function(r,t){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(t=t.split("."),thisCtrl.Check_Array_isEmpty(t))return[];return r.sort(function(r,e){var n,i;return n=thisCtrl.Object_Traverse(r,t),i=thisCtrl.Object_Traverse(e,t),thisCtrl.Remove_Undefine(r,e,n,i,"sort",function(){return n-i})})}catch(r){return}},exports.Array_MaxBy=function(r,t){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(t=t.split("."),thisCtrl.Check_Array_isEmpty(t))return[];return r.reduce(function(r,e){var n,i;return n=thisCtrl.Object_Traverse(r,t),i=thisCtrl.Object_Traverse(e,t),thisCtrl.Remove_Undefine(r,e,n,i,"max",function(){return n>i?r:e})})}catch(r){return}},exports.Array_MinBy=function(r,t){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(t=t.split("."),thisCtrl.Check_Array_isEmpty(t))return[];return r.reduce(function(r,e){var n=thisCtrl.Object_Traverse(r,t),i=thisCtrl.Object_Traverse(e,t);return thisCtrl.Remove_Undefine(r,e,n,i,"min",function(){return n<i?r:e})})}catch(r){return}},exports.Array_Min=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;return r.reduce(function(t,e){return thisCtrl.Check_For_Compare(r,"min",function(){return t<e?t:e})})}catch(r){return}},exports.Array_Max=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;return r.reduce(function(t,e){return thisCtrl.Check_For_Compare(r,"max",function(){return t>e?t:e})})}catch(r){return}},exports.Array_GroupBy=function(r,t){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(t=t.split("."),thisCtrl.Check_Array_isEmpty(t))return[];var e=thisCtrl.Array_Unique(r.map(function(r){return r?thisCtrl.Object_Traverse(r,t):void 0}));return thisCtrl.Array_Validate(e).map(function(e){var n=r.filter(function(r){return thisCtrl.Object_Traverse(r,t).toString()==e.toString()});return{groupBy:e,values:n}})}catch(r){return}},exports.Array_GroupBy_With_Pick=function(r,t,e="",n=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(t=t.split("."),thisCtrl.Check_Array_isEmpty(t))return[];var i=thisCtrl.Array_Unique(r.map(function(r){return r?thisCtrl.Object_Traverse(r,t):void 0}));return thisCtrl.Array_Validate(i).map(function(i){var u=r.filter(function(r){return thisCtrl.Object_Traverse(r,t).toString()==i.toString()});return e.length>1&&(u=thisCtrl.Array_Pick(u,e)),n&&u.forEach(function(r){thisCtrl.reorganizeResult(r,n)}),{groupBy:i,values:u}})}catch(r){return}},exports.Array_Pick=function(r,t,e=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var n=thisCtrl.Array_Validate(t.split(" "));return thisCtrl.Check_Array_isEmpty(n)?r:r.map(function(r){var t={};return n.forEach(function(e){var n=e.split(".");if(r){var i=thisCtrl.Object_Traverse(r,n);i&&(t[e]=i)}}),e&&thisCtrl.reorganizeResult(t,e),t})}catch(r){return}},exports.Array_Filters=function(r,t){try{return thisCtrl.Check_Array_isEmpty(r)?r:OBJECT_CTRL.Object_IsEmpty(t)?[]:r.filter(function(r){var e=[];for(var n in t){var i=n.split(".");thisCtrl.Object_Traverse(r,i)==t[n]?e.push(!0):e.push(!1)}if(e.every(function(r){}))return r})}catch(r){return}},exports.Array_FindOne=function(r,t={},e="",n=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(OBJECT_CTRL.Object_IsEmpty(t))return[];var i=r.find(function(r){var e=[];for(var n in t){var i=n.split(".");thisCtrl.Object_Traverse(r,i)==t[n]?e.push(!0):e.push(!1)}if(e.every(function(r){return!0===r}))return r});if(i){var u=thisCtrl.Array_Pick([i],e,n);u&&u.length&&(i=u[0])}return i}catch(r){return}},exports.Array_UpdateOne=function(r,t,e){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(OBJECT_CTRL.Object_IsEmpty(t))return[];var n=r.find(function(r){var e=[];for(var n in t){var i=n.split(".");thisCtrl.Object_Traverse(r,i)==t[n]?e.push(!0):e.push(!1)}if(e.every(function(r){return!0===r}))return r});return thisCtrl.Object_Update(r,n,e)}catch(r){return}},exports.Array_UpdateMany=function(r,t,e){try{return thisCtrl.Check_Array_isEmpty(r)?r:OBJECT_CTRL.Object_IsEmpty(t)?[]:(r.filter(function(r){var e=[];for(var n in t){var i=n.split(".");thisCtrl.Object_Traverse(r,i)==t[n]?e.push(!0):e.push(!1)}if(e.every(function(r){return!0===r}))return r}).forEach(function(t){r=thisCtrl.Object_Update(r,t,e)}),r)}catch(r){return}},exports.Object_Update=function(r,t,e){var n=r.indexOf(JSON.stringify(t));for(var i in e)t[i]=e[i],thisCtrl.reorganizeResult(t);return-1!=n&&(r[n]=t),r},exports.Array_Filters_With_Pick=function(r,t={},e="",n=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;if(OBJECT_CTRL.Object_IsEmpty(t))return[];var i=r.filter(function(r){var e=[];for(var n in t){var i=n.split(".");thisCtrl.Object_Traverse(r,i)==t[n]?e.push(!0):e.push(!1)}if(!e.includes(!1))return r});return thisCtrl.Array_Pick(i,e,n)}catch(r){return}},exports.Array_Validate=function(r){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var t=[];for(var e of r)e&&0!=e&&NaN!=e&&null!=e&&" "!=e&&t.push(e);return t}catch(r){return}},exports.Remove_Undefine=function(r,t,e,n,i,u){return!e&&n?t:!n&&e?r:e||n?"min"==i?u():"max"==i?u():"sort"==i?u():void 0:void 0},exports.Array_Some=function(r,t,e){try{return thisCtrl.Check_Array_isEmpty(r)?r:(t=t.split("."),thisCtrl.Check_Array_isEmpty(t)?[]:r.some(function(r){return thisCtrl.Object_Traverse(r,t).toString()==e.toString()}))}catch(r){return}},exports.Array_Every=function(r,t,e){try{return thisCtrl.Check_Array_isEmpty(r)?r:(t=t.split("."),thisCtrl.Check_Array_isEmpty(t)?[]:r.every(function(r){return thisCtrl.Object_Traverse(r,t).toString()==e.toString()}))}catch(r){return}},exports.Array_Copy=function(r){try{return Array.from(r)}catch(r){return}},exports.Array_Intersect=function(r,t){try{var e=[];for(var n of r)t.includes(n)&&e.push(n);return e}catch(r){return}},exports.Array_Union=function(r,t){try{return r.concat(t)}catch(r){return}},exports.Array_Sum=function(r){try{return r.reduce(function(r,t){return thisCtrl.Check_For_Compare(r,t,function(){return r+t})})}catch(r){return}},exports.Array_SumBy=function(r,t,e=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var n=thisCtrl.Array_Validate(t.split(" "));if(thisCtrl.Check_Array_isEmpty(n))return[];var i={};for(var u of n){var c=u.split(".");if(thisCtrl.Check_Array_isEmpty(c))return[];function s(r,t){var e,n;return e=Number.isInteger(r)?r:thisCtrl.Object_Traverse(r,c),n=thisCtrl.Object_Traverse(t,c),thisCtrl.Remove_Undefine(r,t,e,n,"min",function(){return e+n})}i[u]=r.reduce(s)}return thisCtrl.reorganizeResult(i,e),i}catch(r){return}},exports.Array_Avg=function(r){try{return r.reduce(function(r,t){return thisCtrl.Check_For_Compare(r,t,function(){return r+t})})/r.length}catch(r){return}},exports.Array_AvgBy=function(r,t,e=!0){try{if(thisCtrl.Check_Array_isEmpty(r))return r;var n=thisCtrl.Array_Validate(t.split(" "));if(thisCtrl.Check_Array_isEmpty(n))return[];var i={};for(var u of n){var c=u.split(".");if(thisCtrl.Check_Array_isEmpty(u))return[];function s(r,t){var e,n;return e=Number.isInteger(r)?r:thisCtrl.Object_Traverse(r,c),n=thisCtrl.Object_Traverse(t,c),thisCtrl.Remove_Undefine(r,t,e,n,"min",function(){return e+n})}i[u]=r.reduce(s)/r.length}return thisCtrl.reorganizeResult(i,e),i}catch(r){return}},exports.head=function(r){return r[0]},exports.tail=function(r){return r.slice(1)},exports.Array_Object_Creation=function(r,t){try{for(var e=[],n=0;n<r.length;n++){for(var i={},u=0;u<r.length;u++)i[t[u]]=r[u][n];e.push(i)}return e}catch(r){return}},exports.Object_Traverse=function(r,t){var e=null;try{for(var n of t)e=null==e?r[n]:e[n];return e}catch(r){return}},exports.Check_For_Compare=function(r,t,e){return!r&&t?t:!t&&r?r:r||t?e():void 0},exports.construct_Object=function(r,t){for(var e={},n=r.length-1;n>=0;n--){var i=thisCtrl.Object_Copy(e);if(n==r.length-1){e[r[n]]=t}else{var u={};u[r[n]]=i,e=u}}return e},exports.Object_Copy=function(r){var t={};for(var e in r)t[e]=r[e];return t},exports.Array_RemoveOne=function(r,t){try{return thisCtrl.Check_Array_isEmpty(r)?r:OBJECT_CTRL.Object_IsEmpty(t)?[]:(r.find(function(e,n){var i=[];for(var u in t){var c=u.split(".");thisCtrl.Object_Traverse(e,c)==t[u]?i.push(!0):i.push(!1)}if(i.every(function(r){return!0===r}))return r.splice(n,1),!0}),r)}catch(r){return}},exports.Array_RemoveMany=function(r,t){try{return thisCtrl.Check_Array_isEmpty(r)?r:OBJECT_CTRL.Object_IsEmpty(t)?[]:(r.filter(function(e,n){var i=[];for(var u in t){var c=u.split(".");thisCtrl.Object_Traverse(e,c)==t[u]?i.push(!0):i.push(!1)}i.every(function(r){return!0===r})&&r.splice(n,1)}),r)}catch(r){return}},exports.Array_Flat=function(r){try{return r.toString().split(",")}catch(r){return}},exports.Array_UniqueBy=function(r,t){try{var e={},n=[];return thisCtrl.Check_Array_isEmpty(r)?r:OBJECT_CTRL.Object_IsEmpty(t)?[]:(r.forEach(r=>{var i=thisCtrl.Object_Traverse(r,t.split("."));i=i.toString().toLowerCase(),e[i]||(e[i]=!0,n.push(r))}),n)}catch(r){return}},exports.reorganizeResult=function(r={},t=!0){return t?(Object.keys(r).forEach(function(t){var e=t.split(".");if(e.length>1){var n=r[t];delete r[t],recreateObject(r,e,n)}}),r):r};