zoukankan      html  css  js  c++  java
  • 你应该知道的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

  • 相关阅读:
    hadoop wordcount
    hadoop map reduce 实例wordcount的使用
    玉髓
    数据类型检测的四种方式
    天猫前端招聘要求
    正则示例1
    字面量和实例创建的区别
    正则表达式
    面试题1
    this关键字
  • 原文地址:https://www.cnblogs.com/pigtail/p/2854621.html
Copyright © 2011-2022 走看看