gpt4 book ai didi

javascript - 带有回调的递归函数 JS

转载 作者:行者123 更新时间:2023-12-03 01:19:44 25 4
gpt4 key购买 nike

我有这两个递归函数。最上面的一个有效,但是当我尝试制作 quantityColumn 时充当 callback对于第二个函数,我收到一个错误 callback is not a function 。有什么想法我做错了吗?

var sumColumn = function(lineNumber) {
return lineNumber === 0
? quantityColumn(0)
: quantityColumn(lineNumber) + sumColumn(lineNumber -1)
}

sumColumn(lineCount) // returns 9

var sumColumn = function(callback, lineNumber) {
return lineNumber === 0
? callback(0)
: callback(lineNumber) + sumColumn(callback(lineNumber -1), lineNumber -1)
}
sumColumn(quantityColumn, lineCount) // callback is not a function

如果需要更多代码。这是 quantityColumn函数是.另外值得注意的是,current.getSublistValue是第 3 方 API (NetSuite),它基本上只返回表上行/行的交集。

 var columnValue = R.curry(function(getSublistValue, sublistId, column, i) {
return getSublistValue({
sublistId: sublistId,
fieldId: column,
line: i
})
}
)
var itemSublist(current.getSublistValue)('item')
var quantityColumn = itemSublist('quantity')
var lineCount = current.getLineCount('item') - 1 // first index is 0

quantityColumn(5) // 2
quantityColumn(4) // 1
quantityColumn(3) ...

var sumColumn = function(lineNumber) {
return lineNumber === 0
? quantityColumn(0)
: quantityColumn(lineNumber) + sumColumn(lineNumber -1)
}
sumColumn(lineCount) // returns 9

最佳答案

var sumColumn = function(lineNumber) {
return lineNumber === 0
? quantityColumn(0)
: quantityColumn(lineNumber) + sumColumn(lineNumber -1)
}

sumColumn(lineCount) // returns 9

var sumColumn = function(callback, lineNumber) {
return lineNumber === 0
? callback(0)
: callback(lineNumber) + sumColumn(callback, lineNumber -1)
}
sumColumn(quantityColumn, lineCount) // callback is not a function

在这一行中 callback(lineNumber) + sumColumn(callback(lineNumber -1), lineNumber -1) 您正在调用函数 callback (参数为 lineNumber-1 )你想要的就是传递它

关于javascript - 带有回调的递归函数 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51810975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com