我有一个对象数组:
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中运行的用户脚本的一部分。
答案 0 :(得分:1)
原来问题是我的代码一直都是。在一个不相关的函数中,我在conversions
数组中添加元素,而不是在该函数中添加正确的数组。