В этом куске Javascript
creds = cp[0]; data[creds.toString()] = cp[1]; // data is an object
Chrome выдает ошибку TypeError: Cannot call method toString of undefined во второй строке. Тем не менее, я подтвердил с помощью отладчика, что значение creds в этот момент является числом 1400.
TypeError: Cannot call method toString of undefined
creds
1400
Что происходит?
Вы должны быть очень осторожны при использовании цикла for in для массива. Вместо этого используйте обычный цикл.
for in
Массив cpl содержит не только данные, но и функции, поэтому третьим cp в цикле является функция. Вот почему creds превратился в неопределенное.
cpl
cp
Эта ссылка имеет хорошее объяснение: Почему использование «for ... in» с итерацией массива - плохая идея?
Javascript не нуждается в типе переменной, поэтому сделайте это, удалив toString().
toString()
Кстати, я не уверен, что вы можете назвать toString() для примитивного типа как int
int