2015-07-21 3 views
1

У меня есть объект JSON в следующем форматеПолучить ключ от значения в Json

MyJsonObject= { 
    'Animal': ['Lion', 'Tiger', 'Elephant'], 
    'Human': ['Man', 'Woman'] 
}; 

Я хочу, чтобы получить ключ в качестве типа возвращаемого значения, если мы передаем значение функции. Например, если я передаю значение = Человек, функция должна вернуть Human как возвращаемый тип. Аналогично, если я передал Тигра в качестве значения, чем хочу получить Animal в качестве возвращаемого значения.

Любая помощь будет оценена

ответ

1

Привет сниппет пыльник должен работать.

Вы можете попробовать здесь http://jsfiddle.net/xtdqodzk/1/

MyJsonObject= { 
    'Animal': ['Lion', 'Tiger', 'Elephant'], 
    'Human': ['Man', 'Woman'] 
}; 
function find(value){ 
    for(var prop in MyJsonObject){ 
     if(MyJsonObject.hasOwnProperty(prop)){ 
      for(var i =0 ;i<MyJsonObject[prop].length;i++){ 
       if(MyJsonObject[prop][i] === value){ 
        return prop; 
       } 
      } 
     } 
    } 
} 
alert(find('Man')); 
+0

Спасибо ... это сработало для меня. Цените свою помощь – LilRazi

+0

@JNil, если он работает, было бы неплохо принять мой ответ, чтобы вы могли получить некоторые очки, и я тоже. – Su4p

1

Вы можете попытаться изменить объект прототипа

Object.prototype.findKey = function(value) { 
    for (var key in this) { 
    if (this.hasOwnProperty(key)) { 
     for (var i = 0; i < this[key].length; i++) { 
     if (this[key][i] === value) { 
      return key; 
     } 
     } 
    } 
    } 
} 

var MyJsonObject = { 
    'Animal': ['Lion', 'Tiger', 'Elephant'], 
    'Human': ['Man', 'Woman'] 
}; 

console.log(MyJsonObject.findKey('Man')); 

Преимущество делать таким образом, если у вас есть другой объект JSON можно вызвать .findKey функция на этот объект, так как все объекты наследуют функции и свойства объекта Object.prototype (прототипное наследование).

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