从对象中按值检索
Retrieve by value from an Object?
这个必须是一个重复,但我一直在谷歌"检索值从对象javascript"answers"javascript查找对象按值"和每一个变体,没有得到任何地方,所以道歉,这里去。
假设我有一个这样的JavaScript对象:
var options = {"ford": "red", "citroen": "blue"};
我如何查找值blue
以获得citroen
?
总是有"写你自己的函数"的路线,我想:
function returnbyValue(options, v):
for (var prop in options) {
if (options.hasOwnProperty(v)) {
if (options[prop] === v) {
return prop;
}
}
}
return null;
,但JavaScript有任何内置的,或者有一个更整洁的方式来做到这一点吗?
对象的属性可以像关联数组一样被访问!这真是太神奇了!
var obj = {
'key': 'val'
};
alert( obj['key'] );
或者,如果你想使用一个方法,你可以创建一个原型方法。
Object.prototype.getPropertyByString = function( str ) {
return this[str];
};
alert( obj.getPropertyByString( 'key' ) );
编辑:哇,我刚刚注意到我没有回答你的问题,我的道歉!请给我第二次机会。
没有内置函数,但我的脚本下面工作!
var obj = {
'key': 'val'
};
Object.prototype.getKeyByValue = function( object ) {
for(var key in this) {
if(this.key === object) {
return key;
}
}
return null;
};
alert( obj.getKeyByValue( 'val' ) );
循环遍历对象,如果匹配值则返回键。不管值是int、字符串、对象还是其他类型,这都可以工作。这是因为我使用了严格的相等比较("==="),它还检查对象类型是否相同。
另外,请注意,如果要循环遍历对象的所有键,检查属性是否存在是愚蠢的。显然,当循环遍历所有键时,它们都存在
没有这样的内置方法。你自己的函数看起来也不错。我想不出有什么改进的办法。
相关文章:
- 如何从类关系中检索对象列表
- 检索对象项的路径
- 正在根据ID从数组中检索对象
- 以文本形式检索对象元素中的SVG Dom
- AJAX来检索对象并将其存储在变量中
- 如何在帮助程序或事件中检索对象的内部_id
- 如何在 ydn-db 中检索对象的排序列表
- Javascript - 检索对象属性路径
- 从具有特定参数的数组中检索对象
- 如何从jsonString中检索对象
- 检索对象自己的标记
- 从URL检索对象/资源
- 如何从Google Apps脚本项目属性中存储和检索对象
- 如何从GTM数据层中检索对象
- JQueryAJAX检索对象数组
- 正在检索对象中嵌套的值
- 使用PHP从JSON中检索对象
- 如何从具有给定(键、值)对的长列表中检索对象
- 使用承诺从 mongo db 检索对象时出错
- 在树状的angularjs模型中检索对象