我正在尝试编写一个函数,该函数接受一个数组和另一个函数作为输入。我所知道的关于提供的函数仅限于以下两种情况之一:
因此,有了这两个函数......
有没有办法深入了解第一个函数,以便找出最佳的调用方法?
- 接受一个数字参数并返回一个新的数字
- 接受一个数字数组并返回一个新的数字数组
Array.prototype.map()
调用提供的函数。因此,有了这两个函数......
var unknownFunction = function( unknownInput ) {
//Does stuff with input
//returns number or array of numbers...
return someValueOrValues
}
并且
var mainFunction = function( anArray, preFunction ){
// SOME CODE TO CHECK IF ARG NEEDS TO BE NUMBER OR ARRAY
// ...
// ...
**ANSWER WOULD FIT HERE**
if( argIsNumber === true ){
// function takes NUMBER
anArray = anArray.map( preFunction )
}else{
// function takes ARRAY
anArray = preFunction(anArray)
}
// DO STUFF WITH ARRAY AFTER USER FUNCTION HAS MADE IT'S MODIFICATIONS
// ...
// ...
// ...
return anArray;
}
有没有办法深入了解第一个函数,以便找出最佳的调用方法?
function unknownFunction(unknownInput) { if (Math.random() > 0.5) { treat unknownInput as a number } else { treat unknownInput as an array } }
。每次调用该函数时,它都会改变自己的行为!这比停机问题还要糟糕,因为即使是相同的输入,其行为也会发生变化! - Raymond ChenunknownFunction
在处理其输入的方式上并没有变化,但是我的mainFunction
应该能够处理返回单个值和数组的unkFuncA
或unkFuncB
。 - Steve Ladavich