javascript - 迭代函数数组

标签 javascript arrays

我有以下 JavaScript 代码:

function f(){
}

var arrOfFuncs = [f, f, f, f];

for (var i in arrOfFuncs){
    console.log(typeof i);
    console.log(i);
}

当我运行脚本时,它会打印:

string
0
string
1
...
string
3

由于我正在迭代函数数组,因此“typeof i”不应该是“function”,而 i.toString() 不应该是“function f(){}”吗?

最佳答案

没有。 for…in构造迭代对象或数组的,而不是其

您可以使用简单的 for 循环:

for (var i = 0; i < arrOfFuncs.length; i++){
    console.log(typeof arrOfFuncs[i]);
    console.log(arrOfFuncs[i]);
}

或者修改您的 for...in 循环,如下所示:

for (var i in arrOfFuncs){
    console.log(typeof arrOfFuncs[i]);
    console.log(arrOfFuncs[i]);
}

或者您可以使用 forEach方法(ECMAScript 5.1 中引入):

arrOfFuncs.forEach(function(f) {
    console.log(typeof f);
    console.log(f);
});

关于javascript - 迭代函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25697154/

相关文章:

javascript - 事件监听器在某些上下文中无法附加或删除

javascript - 减少和求和对象数组的条目

c - 如何设置数组 B[0..n][0..k]。请帮助

asp.net - 从另一个页面调用一个页面上的按钮单击事件 ASP.NET

javascript - 为什么多维数组只在每个单元格上执行函数?

javascript - 单击自定义 HTML 按钮时无法关闭 Sweet Alert 2 模式

javascript - 不同位置的 MediaSource appendBuffer

arrays - 垂直连接部分单元格内容

php - 检查smarty数组中是否存在key

java - 查找数组所有可能组合的所有可能组合