Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何在数组中运行作为参数传递的函数?_Javascript - Fatal编程技术网

JavaScript:如何在数组中运行作为参数传递的函数?

JavaScript:如何在数组中运行作为参数传递的函数?,javascript,Javascript,我正在进行一些JavaScript练习。其中一个使用数组作为参数 解决该练习的函数应该遍历输入数组,测试输入内容的类型,并将该项添加到要返回的新数组中。 输入数组可以包含多种类型,包括函数。 如果项是函数,则需要调用它/运行,而不是将其添加到新数组中。应将结果添加到要返回的新数组中 我可以使用“typeof”测试输入数组中的函数。没问题。 如何调用/运行该函数 下面是一个输入数组的示例,该数组具有作为项的函数: flattenArray([1, '2', 3, 4, function () {

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

解决该练习的函数应该遍历输入数组,测试输入内容的类型,并将该项添加到要返回的新数组中。 输入数组可以包含多种类型,包括函数。 如果项是函数,则需要调用它/运行,而不是将其添加到新数组中。应将结果添加到要返回的新数组中

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

下面是一个输入数组的示例,该数组具有作为项的函数:

flattenArray([1, '2', 3, 4, function () { return 'five'; }]);
返回的结果数组应为:

[1, '2', 3, 4, 'five']
下面是我的代码部分,我正在测试通过输入数组(名为“数组”)的循环中的对象

var arrrurn=[];
对于(var i=0;i

我很乐意在MDN或其他地方获得一个页面链接作为答案,因为我想了解如何做到这一点。

您只需调用以下函数:

// Add () to call, just like you would any other function. 
var functionResult = array[i]();
如果您将其分解为两个步骤,可能会更有意义:

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

您只需调用以下函数:

// Add () to call, just like you would any other function. 
var functionResult = array[i]();
如果您将其分解为两个步骤,可能会更有意义:

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

通过检查
map()
中的
typeof
属性来执行该函数。请尝试以下操作:
var arr=[1,2,3,4,函数(){return'five';}];
var arrReturn=[];
arrrurn=arr.map(函数(项){
如果(项目类型===‘功能’){
项目=项目();
}
退货项目;
});

console.log(返回)
通过检查
map()
中的
typeof
属性来执行函数。请尝试以下操作:
var arr=[1,2,3,4,函数(){return'five';}];
var arrReturn=[];
arrrurn=arr.map(函数(项){
如果(项目类型===‘功能’){
项目=项目();
}
退货项目;
});

console.log(返回)
array[i]()
——只要它是一个函数,您就需要调用它。
array[i]()
——只要它是一个函数,您就需要调用它。这两个版本的功能并不完全相同。在第一个示例中,函数可以通过
this
访问
array
,而在第二个示例中则没有。如果这些其他函数不受信任,则第一个示例中的代码可能会通过向第三方公开内部对象而导致安全漏洞。@cdhowie我将删除该页脚以防止混淆。最好解释一下它们不会做同样的事情。我看到过现实世界中的安全问题,这些问题是由于没有意识到你正在通过
这个
@cdhowie传递一个对象而引起的。我要冒险说,如果他们问这样的问题,安全性在这一点上不是他们最关心的。现在也快10点了。我不确定我能写些什么来解释它。不过,欢迎你写一个补充答案。你在这方面的知识可能比我多。老实说,我已经有好几年没有写JS了。这只是一个练习。没有安全问题。我确实把它分为两个步骤。两个版本做的事情并不完全相同。在第一个示例中,函数可以通过
this
访问
array
,而在第二个示例中则没有。如果这些其他函数不受信任,则第一个示例中的代码可能会通过向第三方公开内部对象而导致安全漏洞。@cdhowie我将删除该页脚以防止混淆。最好解释一下它们不会做同样的事情。我看到过现实世界中的安全问题,这些问题是由于没有意识到你正在通过
这个
@cdhowie传递一个对象而引起的。我要冒险说,如果他们问这样的问题,安全性在这一点上不是他们最关心的。现在也快10点了。我不确定我能写些什么来解释它。不过,欢迎你写一个补充答案。你在这方面的知识可能比我多。老实说,我已经有好几年没有写JS了。这只是一个练习。没有安全问题。我确实把它分为两个步骤。