搜索javascript枚举
Searching through a javascript enum
我有以下javascript enum:
// Rooms
var rooms = {
1: 'First Room',
2: 'Second Room',
3: 'Third Room',
};
我可以很容易地得到房间描述如下:
// Get Room Description
var roomOne = 1;
var roomdesc = rooms[roomOne];
如果我有房间描述"第一间房间",我想知道房间号,那该怎么办?
我试着:
// Get room number
var roomIndex = rooms.indexOf('First Room');
var roomNum = rooms[roomIndex];
但是indexOf没有定义。我怎样通过房间描述得到房间号?
感谢PS:忘了说了。我不能更改房间对象。它已经在其他领域得到了应用!此外,我想做到这一点,不使用原型或jquery。谢谢。
试试这个:
var rooms = {
1: 'First Room',
2: 'Second Room',
3: 'Third Room',
};
function test(val){
for (var key in rooms) {
if(rooms.hasOwnProperty(key))
if (rooms[key] == val) {
alert("Key:"+key);
}
}
}
test('First Room');//Pass the value you want to search for
我建议您使用Array's:
var rooms = ['First Room','Second Room','Third Room'];
// Get Room Description
var roomOne = 0;
var roomdesc = rooms[roomOne];
// Get room number
var roomIndex = rooms.indexOf('First Room');
var roomNum = rooms[roomIndex];
console.log( roomNum )
数组不是从零开始索引的
试试这个:
var test = {
1: 'First Room',
2: 'Second Room',
3: 'Third Room',
};
function getKeyByValue (obj, value) {
for( var prop in obj ) {
if( obj.hasOwnProperty( prop ) ) {
if( obj[ prop ] === value )
return prop;
}
}
}
console.log(getKeyByValue( test, "Second Room" )); // logs 2
相关文章:
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- JavaScript数组的子类化破坏了快速枚举
- 为什么Javascript程序员更喜欢在代码中重复字符串作为常量,而不是使用枚举类型的对象
- 如何从 Javascript 访问 Java 枚举 (Java 1.8)
- Javascript propertyIsNumerable-是否有可枚举的方法
- Javascript不可枚举属性
- TypeScript 中的枚举:JavaScript 代码在做什么
- 如何更改 Javascript 对象属性的可写可枚举和可配置值
- JavaScript for.in 和枚举奇怪的行为
- javascript 是否保证枚举同一对象两次将以相同的顺序遍历字段
- 无法在 javascript 中枚举对象的所有属性
- Javascript:枚举全局变量
- 如何将 Typescript 枚举的值添加到我的 JavaScript 函数中
- 具有 IDE 完成功能的 Javascript 伪枚举
- Javascript中的枚举
- JavaScript,定义不可修改的枚举
- 如何在 JavaScript 中实现具有关联值的类似 Swift 的枚举
- Javascript MDN 函数原型绑定 polyfill 在数组中是可枚举的
- 枚举JavaScript对象函数
- 枚举Javascript中getElementByClassName返回的元素