У меня есть массив объектов:странное поведение с array.forEach
var conversions = [
{ regex: ..., names: [ ... ] },
...
];
I цикл по каждому объекту преобразования и передать их в определенной функции:
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
, но это тоже не сработало.
Это часть пользовательского документа, работающего в Chrome с использованием Tampermonkey.
NaN обычно указывает на сбой вычисления, глядя здесь: http://stackoverflow.com/questions/28159572/localization-of-nan-in-dede-returns-nan-rather-than-n-def-in-windows -8-ser и http://stackoverflow.com/questions/34261938/what-is-the-difference-between-nan-nan-and-nan-nan – Petro
Пожалуйста, покажите нам весь код, необходимый для создания этого журнала. – Bergi
@Bergi Это все соответствующий код. Остальное не имеет ничего общего с этой проблемой. Все это характерно для определенного сайта чата, который я использую, который предоставляет публичный API для чтения входящих сообщений и редактирования их по мере необходимости. – Spans