我正在调试别人写的一些代码(使用Mootools作为基础库),我遇到了这个函数:
[note, $H(options.text).getKeys()].flatten().each(function(option){
// bunch of stuff happening
});
我之前从未见过这种语法,括号和$ H表示法(例如[note, $H(options.text).getKeys()]
)。任何人都可以解释它的工作原理或指向我的参考吗?
谢谢!
答案 0 :(得分:6)
这基本上将两个数组聚合在一起。举个例子,这个代码:
var a = [1,2,3];
var b = [4,5,6];
var c = [a, b].flatten();
alert(c);
数组[1,2,3]
和[4,5,6]
被合并(或“展平”)为一个数组1,2,3,4,5,6
。
在您的代码中:
[note, $H(options.text).getKeys()].flatten()
note
(可能是另一个数组)和任何getKeys()
返回都被展平为一个数组。然后,跨每个元素执行一个函数。
<强>更新强>
$H function是Mootools中的效用函数,它是Hash()的快捷方式。
答案 1 :(得分:1)
[note, $H(options.text).getKeys()]
最有可能成为:
[note, ["string1", "string2"]]
所以它返回一个数组。所以["whatever note is", ["Another array", "of objects"]]
需要扁平化为:
["whatever note is", "Another array", "of objects"]