Похоже, что когда я использую числовой тип в качестве имени ключа в объекте, он всегда преобразуется в строку. Есть ли вообще, чтобы на самом деле заставить его хранить цифру? Обычное приведение типов, похоже, не работает.Есть ли способ использовать числовой тип в качестве ключа объекта?
Пример:
var userId = 1;
console.log(typeof userId); // number
myObject[userId] = 'a value';
console.dir(myObject);
Dir Выход:
{
'1': 'a value'
}
То, что я хочу это:
{
1: 'a value'
}
Совет?
Благодаря
спасибо. Является ли это признаком ошибки на этом языке или принято в качестве хорошего дизайнерского решения? – Spot
Это довольно субъективно. Как отметил Уильям, для целых ключей вы можете вместо этого использовать массив. Большинство двигателей JS могут использовать разреженные массивы за кулисами. –
Даже в массиве все имена свойств преобразуются в строки. –