faltu
1.0.0
以 Mongo 風格對物件數組進行搜尋排序、過濾、限制和迭代。
在NodeJS中:
npm install faltu --save
對於其他項目,只需下載該文件並將其包含在您的頁面中:
< script src =" faltu.min.js " > </ script >
所有傳遞的資料都應該是數組或物件。
例如:
[array, array, ..., array]
所有傳回的資料也是同一型別。
例如:
var data = [ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ] ;
將數組傳遞給建構函數:
在NodeJS中:
var Faltu = require ( 'faltu' ) ;
var faltuData = new Faltu ( data ) ;
在其他環境下:
var faltuData = new Faltu ( data ) ;
您可以使用find
方法進行搜尋。搜尋所有 18 歲以下的男性:
var newData = new Faltu ( data ) . find ( {
age : 18
} ) . get ( ) ;
newData
看起來像:
[ {
name : "Doe" ,
age : 18
} ]
如果你想要傳回一個數組,你應該總是在最後呼叫get
。或者它只會回傳faltu
實例。
搜尋所有年滿 18 歲或以上的男性:
var newData = new Faltu ( data ) . find ( {
age : {
$gte : 18 // $gte is similar to >= (greater than or equal to)
}
} ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
find
中其他支援的比較運算子有:
$lt
:<$lte
:<=$gt
:>$ne
:!搜尋所有 18 歲或 16 歲的男性:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} , {
name : "Doe" ,
age : 18
} ]
傳遞null
、空物件{}
或不find
任何內容表示不執行任何搜尋。 find
接受選項作為第二個參數。
例如:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} , {
sort : {
age : - 1
}
} ) . get ( ) ;
將按age
降序傳回資料。除了sort
之外,您還可以傳遞:
skip
limit
unique
使用sort
將結果依age
降序排序:
var newData = new Faltu ( data ) . find ( {
age : [ 16 , 18 ]
} ) . sort ( {
age : - 1 // 1 = ASC, -1 = DESC
} ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "John" ,
age : 16
} ]
讓我們只回傳 1 個物件:
var newData = new Faltu ( data ) . find ( ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
讓我們跳過第一個物件:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} , {
name : "Smith" ,
age : 22
} ]
讓我們跳過第一個物件:
var newData = new Faltu ( data ) . find ( ) . skip ( 1 ) . limit ( 1 ) . get ( ) ;
newData
:
[ {
name : "Doe" ,
age : 18
} ]
您可以透過鍵傳回唯一的結果。
var newData = new Faltu ( data ) . find ( ) . unique ( 'age' ) . get ( ) ;
您也可以自己執行jQuery
式過濾。呼叫filter
方法,傳遞一個function
。
var newData = new Faltu ( data ) . find ( ) . filter ( function ( person ) {
return person . age == 16 ; // return true if you want to keep the object
} ) . get ( ) ;
newData
:
[ {
name : "John" ,
age : 16
} ]
each
都會迭代返回的所有記錄。
var newData = new Faltu ( data ) . find ( null ) . each ( function ( person , index ) {
console . log ( 'User name:' , person . name ) ;
} ) ;