Я думаю, что ключи объекта имеют непечатаемые символы, такие можно повторить следующим образом:
var obj = {};
obj["E"+String.fromCharCode(15)] = new Array(15);
console.log(obj);
/*Object
E: Array[15]
__proto__: Object*/
console.log(obj.E)
//undefined
console.log( obj["E"+String.fromCharCode(15)] )
//[]
Редактировать: вы можете увидеть, так ли это для ваших ключей объекта:
var realKeys = [];
for( var key in obj ) {
realKeys.push( [].slice.call( key ).map( function(v){return v.charCodeAt(0);} ).join(" ") );
}
//["69 15"] (69 stands for the letter "E" and 15 was the unprintable character I added manually)
Edit2: так как вы не можете сделать это, я нашел другой способ проверить, есть ли непечатаемые символы:
Скопируйте и вставьте строку ключа следующим образом: (Пройдите как можно больше на обоихзаканчивается, поэтому вы выбираете любые невидимые символы)
Затем сбросьте свой буфер обмена следующим образом (убедитесь, что вы используете двойные кавычки):