我正在运行一些JavaScript练习。其中之一使用数组作为参数。

解决该问题的函数应遍历输入数组,测试即将出现的内容的类型,然后将项目添加到要返回的新数组中。
输入数组可以包含各种类型,包括函数。
如果一项是函数,则需要调用/运行该项,而不是将其添加到新数组中。结果应添加到要返回的新数组中。

我可以使用“ typeof”在输入数组中测试功能。没问题。
如何调用/运行该功能?

因此,这是一个具有作为项功能的输入数组的示例:

flattenArray([1, '2', 3, 4, function () { return 'five'; }]);


返回的结果数组应为:

[1, '2', 3, 4, 'five']


这是我的代码部分,我在其中测试通过输入数组(称为“数组”)的循环中的对象。

var arrReturn = [];

for(var i = 0; i < array.length; i++){
// Test for a function.
// Run/call the function.
    if(typeof array[i] === "function"){
        var functionResult = array[i];  // This is not correct. What should go here?
        arrReturn.push(functionResult);
    }
}


我很乐意将链接指向MDN或其他地方的页面作为答案,因为我想学习如何做。

最佳答案

您只需要调用函数:

// Add () to call, just like you would any other function.
var functionResult = array[i]();


如果将其分为两个步骤,则可能更有意义:

var func = array[i];
var result = func(); // Calling

关于javascript - JavaScript:如何运行在数组内作为参数传递的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48087013/

10-11 23:24
查看更多