Junil Um
http://blog.powerumc.kr
Javascript Array Extensions
- It is an array extensions that can be used javascript and node.js.
- It is just likes C# extension methods or lambda expression can be used.
- It is more fantastic with https://github.com/powerumc/js-lambda
Use it
Nuget
PM> Install-Package JSArrayExtensions
Node.JS
$ npm install js-array-extensions
require('js-array-extensions');
Support methods
- any
- first
- firstOrDefault
- firstOrNew
- last
- lastOrDefault
- lastOrNew
- where
- select
- foreach
- orderBy
- take
- skip
- sum
- average
- max
- min
- range and Array.range
- union
- clone
- distinct
- innerJoin
- outerJoin - working
- groupBy - working
Basics
any( predicate )
12345; // True12345; // True12345; // False
first( predicate )
123; // 1 356; // 6356; // [] is new Array() 369; // 3369; // 6345; // Null
last( predicate )
369; // 9369; // throw null references 369; // 9369; // 6 369; // 3369; // [] is new Array()
Selector and Condition
select( selector )
var arr = "key": "powerumc" "value": "http://blog.powerumc.kr" "key": "devth" "value": "http://devwith.com" "key": "domain" "value": "http://powerumc.kr" ; var selected = arr; // results var selectedselect name=powerumc website=http://blog.powerumc.krselect name=devth website=http://devwith.comselect name=domain website=http://powerumc.kr
where( selector )
var arr = "key": "powerumc" "value": "http://blog.powerumc.kr" "key": "devth" "value": "http://devwith.com" "key": "domain" "value": "http://powerumc.kr" ; var selected = arr; // results var selectedwhere =http://blog.powerumc.krwhere =http://powerumc.kr
take( number )
var arr = 12345678910;var take = arr; // results var taketake = 12345
skip( number )
var arr = 12345678910;var skip = arr; // results var skipskip = 678910
take and skip
var arr = 1234567891011121314151617181920;var take = 5;var count = 5;var page = 2;var pagingList = arr; // resultstake and skip 1112131415
Array.distinct( first, second, ... )
var first = 1 2 3 4 5; var second = 1 2 3 4 5 6 7 8 9; var third = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; var result = Array; console; // result // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Array.distinct( first, second, ... )
var first = 1 2 3 4 5;var second = 1 2 3 4 5 6 7 8 9;var third = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; var result = Array; console; // result// 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Loop
foreach ( i, object, args )
var arr = "key": "powerumc" "value": "http://blog.powerumc.kr" "key": "devth" "value": "http://devwith.com" "key": "domain" "value": "http://powerumc.kr" ; arr; // resultsforeach o=powerumcforeach o=devthforeach o=domain arr; // resultsforeach i=0 key=powerumcforeach i=1 key=devthforeach i=2 key=domain arr; // resultsforeach i=0 key=powerumc arg=this is argumentsforeach i=1 key=devth arg=this is argumentsforeach i=2 key=domain arg=this is arguments
foreach ( i, object, args ) with foreach.continue
var arr = "key": "powerumc" "value": "http://blog.powerumc.kr" "key": "devth" "value": "http://devwith.com" "key": "domain" "value": "http://powerumc.kr" ; arr; // resultsforeach continue i = 0 key = powerumcforeach continue i = 1 key = devth
foreach ( i, object, args ) with foreach.break
var arr = "key": "powerumc" "value": "http://blog.powerumc.kr" "key": "devth" "value": "http://devwith.com" "key": "domain" "value": "http://powerumc.kr" ; arr; // resultsforeach break i = 0 key = powerumc
Sort
orderBy( comparer )
var arr = 23 8 43 81 4 32 64 ;arr = arr; // results 4 8 23 32 43 64 81
orderBy( comparer ) with comparer.ascending or comparer.asc
var arr = 23 8 43 81 4 32 64 ;arr = arr; // resultsorderBy comparerascending 4orderBy comparerascending 8orderBy comparerascending 23orderBy comparerascending 32orderBy comparerascending 43orderBy comparerascending 64orderBy comparerascending 81
orderBy( comparer ) with comparer.descending or cmoparer.desc
var arr = 23 8 43 81 4 32 64 ;arr = arr; // resultsorderBy comparerdescending 81orderBy comparerdescending 64orderBy comparerdescending 43orderBy comparerdescending 32orderBy comparerdescending 23orderBy comparerdescending 8orderBy comparerdescending 4
Combination
Array.union( first, second )
var first = 12345;var second = 678910;var union = first; // results var unionarray0 = 1array1 = 2array2 = 3array3 = 45array4 = 678array5 = 9array6 = 10
Object.union( first, second )
var person1 = "name" : first:"Junil" last:"Um" "address" : country:"South Korea" city:"Seoul" "email" : "powerumc at gmail" ;var person2 = "name" : first:"Apple" last:"MacBook" "address" : country:"U.S" city:"N/A" "email" : "apple@apple.com" ; var union = Object; // results var unionarray0 = "name" : first:"Junil" last:"Um" "address" : country:"South Korea" city:"Seoul" "email" : "powerumc at gmail" array1 = "name" : first:"Apple" last:"MacBook" "address" : country:"U.S" city:"N/A" "email" : "apple@apple.com"
Join
Array.innerJoin( first, second, primaryKey, foreignKey, selector )
var firstjoin = name: "Junil Um" name: "Chulsu" name: "Jane" name: "Paris" ; var secondjoin = name: "Junil Um" addr: addr1: "Junil Addr1" addr2: "Junil Addr2" name: "Chulsu." addr: addr1: "Chulsu Addr1" addr2: "Chulsu Addr2" name: "Jane" addr: addr1: "Jane Addr1" addr2: "Jane Addr2" name: "Paris..." addr: addr1: "Paris Addr1" addr2: "Paris Addr2" ; var result = firstjoin;
Numbers
sum( selector )
var arr = 12345678910;var sum = arr; // 55 var arr = 123"4"5678 "9" "10.5";var sum = arr; // 55.5 var arr = 123456789 105;var sum = arr; // 27.75
average( selector )
var arr = 12345678910;var avg = arr; // 5.5 var arr = 123"4"5678 "9" "10.5"; // 5.55var avg = arr; var arr = 123456789 105;var avg = arr; // 11.1}
range(start, max, step ) and Array.range( start, max, step ) likes range method of python language.
var arr = 012345;arr; // 0,1,2,3,4,5,6,7,8,9 ** arr passed reference type ** var range = ; // 0,1,2,3,4,5,6,7,8,9 var arr = Array; // 0,1,2,3,4,5,6,7,8,9var arr = Array; // 10,11,12,13,14,15,16,17,18,19var arr = Array; // 0,2,4,6,8
Objects and Array
Object.clone( first, second )
var person = "name" : first:"Junil" last:"Um" "address" : country:"South Korea" city:"Seoul" "email" : "powerumc at gmail" ; var clone = Object; // results var clone "name" : first:"Junil" last:"Um" "address" : country:"South Korea" city:"Seoul" "email" : "powerumc at gmail"
Array.clone( first, second )
var arrNum = 12345678910;var clone = Object; // results var clone12345678910
union( second )
var first = 12345;var second = 678910;var union = first; // results var unionarrayunion = 12345678910