你應(yīng)該知道的Node.js擴展模塊——Hashish
51CTO推薦專題:Node.js專區(qū)
本文向您介紹Node.js擴展模塊——Hashish。Hashish是JavaScript的一個Hash組合子庫,換句話說,它包含了一系列數(shù)據(jù)結(jié)構(gòu)操作功能。
例如:
- var Hash = require('hashish');
- Hash({ a : 1, b : 2, c : 3, d : 4 })
- .map(function (x) { return x * 10 })
- .filter(function (x) { return x < 30 })
- .forEach(function (x, key) {
- console.log(key + ' => ' + x);
- })
- ;
這里的Hash構(gòu)造是{ a : 1, b : 2, c : 3, d : 4 };接下來,映射一個函數(shù),每個Hash值乘以10,這時Hash演變成{ a : 10, b : 20, c : 30, d : 40 };然后進行篩選,過濾掉低于30的值,此時Hash為{ a : 10, b : 20 },***,forEach將操作每個實用的值,輸出值為:
- a => 10
- b => 20
請注意,這里Hash可操縱每一個節(jié)點,所有的組合都可以在一起,讓你的代碼保持***。
假如你不能或者不想用連接功能,hashish還可以每個鏈接的形式附加在Hash上。以這樣的形式:
- var Hash = require('hashish');
- var obj = { a : 1, b : 2, c : 3, d : 4 };
- var mapped = Hash.map(obj, function (x) {
- return x * 10
- });
- console.dir(mapped);
注意,在obj hash上的代碼稱之為Hash.map。用Hash輸出的值乘10:
{ a: 10, b: 20, c: 30, d: 40 }
在Hash.xxx鏈接里Hashish還能提供界面和功能的各種屬性。比如:
- $ node
- > var Hash = require('hashish');
- > var obj = { a : 1, b : 2, c : 3, d : 4 };
- >
- > Hash(obj).keys
- [ 'a', 'b', 'c', 'd' ]
- > Hash(obj).values
- [ 1, 2, 3, 4 ]
- > Hash(obj).length
- 4
當(dāng)然,你可以通過npm安裝hashish:
- npm install hashish
本文就介紹到這,這就是Node.js擴展模塊——Hashish。您了解了嗎?
【編輯推薦】