javascript - array.forEach 的奇怪行为

标签 javascript arrays foreach undefined nan

我有一个对象数组:

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 相同。

我一直无法弄清楚为什么会有这个奇怪的对象,或者如何过滤它。我尝试根据 nullundefined 检查它,但都没有成功。我什至尝试根据 NaN.toLocaleString() + ""+ undefined 检查它,但这也不起作用。

这是用户脚本的一部分,使用 Tampermonkey 在 Chrome 中运行。

最佳答案

事实证明问题一直是我的代码。在一个不相关的函数中,我将元素添加到 conversions 数组中,而不是该函数中的正确数组中。

关于javascript - array.forEach 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073157/

相关文章:

java - 合并谷歌电子表格中的单元格

javascript - 基于javascript中的多个键对数据进行分组

javascript - 使用 Angularjs 将动态数据从 Json 获取到 Html

R:为什么并行速度(慢很多)?使用并行(左)连接大量大文件的最佳策略是什么?

javascript - Jquery checkbox.checked 总是返回 false

javascript - 如何使用 jQuery 访问 AJAX 中的 JSON 对象?

asp.net - 每个 GridView

javascript - jQuery:删除字符串的某些部分

javascript - Angular 用户界面 : datepicker seems to hang angularjs when showing button

javascript - “裁剪”二维数组?