javascript - 使用数字键访问非数字键对象是否有效?

标签 javascript object key numeric

我有一个对象

data = {
    'choiceA' : 'Long-Wear',
    'choiceB' : 'Anti-Age Lifting/Firming',
    'choiceC' : 'Replenishing/ Moisturizing',
    'choiceD' : 'Natural/ True-to-Skin',
    'choiceE' : 'Smoothing/ Illuminating'
}    

我需要检索给定整数的第四个值

 position = 3;

通常我会写

 key = $.inArray( position, ['choiceA', 'choiceB', 'choiceC', 'choiceD', 'choiceE']);
 answer = data[key];

但是像这样用数字键直接访问对象是有效的 javascript 吗?

 answer = data[position];  // where position is an integer

编辑:
我在反向使用 $.inArray 时写了一些错误的代码!
我想写

 arr = ['choiceA', 'choiceB', 'choiceC', 'choiceD', 'choiceE'];
 key = arr[position];
 answer = data[key];

最佳答案

不,只有你有数字对象“键”,它才有效,即

data = {
    '1' : 'Long-Wear',
    '2' : 'Anti-Age Lifting/Firming',
    '3' : 'Replenishing/ Moisturizing',
    '4' : 'Natural/ True-to-Skin',
    '5' : 'Smoothing/ Illuminating'
};

此外,请务必注意,JavaScript 对象中的属性未排序。因此,在我看来,您的解决方案是最佳方式。

关于javascript - 使用数字键访问非数字键对象是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14222702/

相关文章:

javascript 如何将数组转换为对象

perl - 如何在 Perl 中使类的成员成为哈希?

C++ 搜索 Windows 注册表

VIM:在正常模式下取消映射句点键

javascript - Object.prototype.toString.call(arrayObj) 和 arrayObj.toString() 的区别

php - 将数组键设置为另一个数组值的值 - PHP

javascript - 在 Webpack 5 中禁用 CSS/SASS/SCSS/LESS URL 的解析

javascript - Vim 中的 Syntastic 声明函数可能无法返回

javascript - 为什么我的 pg-query 结果抛出 TypeError

Java:用对象填充 JComboBox