2016-04-11 3 views

ответ

3

Не-сдвинутым способ сделать это будет:

var yourObject = {1: "name", 2: "cost", 3: "country", 4: "date"}; 
 

 
var result = Object.keys(yourObject).find(key => yourObject[key] === 'cost'); 
 

 
console.log(result) // 2

Предполагает вы можете использовать ES6 (стрелками функции, find)

+0

это именно то, что я хотел - спасибо! –

4

Просто перебирайте свойства, проверяя их соответствующие значения.

for (var property in object) { 
    if (object[property] === 'cost') { 
    /// congratulations, you've found it 
    } 
} 

Есть, конечно, многочисленные причудливые способы сделать это, например. Object.keys - но все они принципиально одно и то же.

+0

Спасибо, что не делает 'Object.prototype' расширения. Простое, эффективное решение. – Eihwaz

+0

О, это действительно приятно! Спасибо! Я буду запускать оба и видеть преимущества каждого из них. –

0

вычислял я швыряю ответ здесь, поскольку Object.Keys() не поддерживается до IE9 из того, что я читал.

$.each(yourObject, function(key,value){ 
    if(value === 'cost'){ 
     console.log(key) // key is 2 
    } 
}); 

Адрес JSFiddle.

Смежные вопросы