你应该知道的Node.js扩展模块——Hashish
原文:http://developer.51cto.com/art/201112/306738.htm
本文向您介绍Node.js扩展模块——Hashish。Hashish是JavaScript的一个Hash组合子库,换句话说,它包含了一系列数据结构操作功能。
例如:
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构造是{ a : 1, b : 2, c : 3, d : 4 };接下来,映射一个函数,每个Hash值乘以10,这时Hash演变成{ a : 10, b : 20, c : 30, d : 40 };
然后进行筛选,过滤掉低于30的值,此时Hash为{ a : 10, b : 20 },最后,forEach将操作每个实用的值,输出值为:
a => 10 ;
b => 20 ;
请注意,这里Hash可操纵每一个节点,所有的组合都可以在一起,让你的代码保持完美。
假如你不能或者不想用连接功能,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还能提供界面和功能的各种属性。比如:
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
当然,hashish是安装的
npm install hashish