我有一个对象数组:
var conversions = [
{ regex: ..., names: [ ... ] },
...
];
我循环遍历每个转换对象并将它们传递给某个函数:
conversions.forEach(function(conv) {
// function selection logic
var result = func(message, conv); // func is the selected function, message is defined before
// result logic
}
循环对于数组中的所有对象都可以正常工作,但是在最后一个对象之后,一个奇怪的对象被传递给回调,该对象不属于我的数组。在回调的最开始添加 console.log(conv);
会正确打印出所有转换,但最后一个奇怪的对象会打印为 epäluku undefined
。 “Epäluku”是 NaN
的错误芬兰语翻译,这意味着输出与 NaN.toLocaleString() + ""+ undefined
相同。
我一直无法弄清楚为什么会有这个奇怪的对象,或者如何过滤它。我尝试根据 null
和 undefined
检查它,但都没有成功。我什至尝试根据 NaN.toLocaleString() + ""+ undefined
检查它,但这也不起作用。
这是用户脚本的一部分,使用 Tampermonkey 在 Chrome 中运行。
最佳答案
事实证明问题一直是我的代码。在一个不相关的函数中,我将元素添加到 conversions
数组中,而不是该函数中的正确数组中。
关于javascript - array.forEach 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073157/