node.js - 合并两个字典 : perl "hashrefslice" syntax in javascript?

标签 node.js perl dictionary hashmap

我有单独的配置文件,这些文件是分开的,因为一个包含密码和其他敏感数据,另一个我不介意让世界看到。假设我有:

sensitivedata = { password : 'foobaz', hostname : 'quux' };
globalconfig  = { timeout : 86400, port : 5190 };

并且我希望 globalconfig 具有字段 passwordhostname。我只能这样做:

globalconfig.hostname = sensitivedata.hostname;
globalconfig.password = sensitivedata.password;

但是当有很多字段时,这很乏味。作为一名 perl 程序员,我想做这样的事情:

@{ $globalconfig }{ keys %{ $sensitivedata } } = 
    @{ $sensitivedata }{ keys %{ $sensitivedata } };

# or ...

@{ $globalconfig }{ qw{ password hostname } } = 
    @{ $sensitivedata }{ qw{ password hostname } };

这也可以用 map 来完成,但这正是我们在 perl 中使用 hashrefslice 语法的目的。是否有一种单语句方法可以将一堆字段从一个字典映射到另一个字典?

当我写这篇文章时,我突然想到我也可以在 perl 中这样做:

subname( { %$globalconfig, %$sensitivedata } );

…为了传递它们的参数,将两个散列连接成一个新的匿名散列,但我不确定如何在 javascript 中“取消引用”字典/散列。该解决方案还结合了两个字典,而没有特别引用元素(如果我只想要 globalconfig 中的一些而不是全部 sensitivedata)。

请温柔一点;我并不是要煽动“我的语言与你的语言”的事情。我非常喜欢node,我只是想借用我熟悉的成语并高效地编写我的代码。

最佳答案

我不相信 javascript 提供了一种本地方式来做到这一点;如果你不是在谈论服务器端,https://github.com/stephenlb/jquery-hashslice/blob/master/jquery.hashslice.js可能会满足您的需求。

关于node.js - 合并两个字典 : perl "hashrefslice" syntax in javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371350/

相关文章:

perl - Perl 中的非阻塞 I/O 操作是否仅限于一个线程?好的设计?

dictionary - Groovy - 将 map 列表合并为单个 map

java - 在重新充气之前更新放气词典

node.js - toObjectId 用于查找和聚合的字符串数组

javascript - 将附加参数传递给回调

javascript - 外部可执行文件无法加载必要的文件

php - 编写我的 linux 守护进程的首选方法是什么?

javascript - 如何在node.js中重用WriteStream的内容

Perl 问题 : contents deleted after grep

python - 将参数传递给字典中的函数