以下是兩個工作版本(用於Node.js)的相同遞歸函數。遞歸沒有顯式設置變量javascript
1版
function getDependencies(mod, result) {
result = result || []
var dependencies = mod.dependencies || []
Object.keys(dependencies).forEach(function(dep) {
var key = dep + '@' + mod.dependencies[dep].version
if (result.indexOf(key) === -1) result.push(key)
getDependencies(mod.dependencies[dep], result) // COMPARE THIS LINE
})
return result.sort()
}
2版
function getDependencies(mod, result) {
result = result || []
var dependencies = mod.dependencies || []
Object.keys(dependencies).forEach(function(dep) {
var key = dep + '@' + mod.dependencies[dep].version
if (result.indexOf(key) === -1) result.push(key)
result = getDependencies(mod.dependencies[dep], result) // COMPARE THIS LINE
})
return result.sort()
}
如何函數工作1版本相比,2.0版本,但沒有明確設定結果變量?
你的分號鑰匙壞了嗎? – jfriend00 2014-11-02 06:17:06
這是來自Nodeschool的Node.js解決方案。 – user3477405 2014-11-02 06:17:58