我正在尝试将一块 Ruby 代码转换为 Node.js。一件特别的作品让我很难过,关于yield
. 代码如下:
each_pair(hash["args"][0]) do |key, value, pair|
# perform operations
end
...
def each_pair(hash)
hash["props"].each do |p|
yield(p["key"], p["value"], p)
end
end
如果我正确阅读了这段代码,它会说“迭代哈希属性。对于每个元素,回调外部函数并使用给定p["key"], p["value"], p
值执行操作。”
我无法真正理解这在 Javascript 中的外观。我熟悉编写更琐碎的闭包。是否可以进行转换?我猜它是这样的:
each_pair(hash["args"][0], function(key, value, pair) {
// perform operations
}
...
function each_pair(hash, func) {
hash["props"].forEach(p) {
func(p["key"], p["value"], p)
}
}
但是感觉有些不对...