max li
max li

Reputation: 2457

Find index number of json by its key

say if I have a json object like:

{
  "items":[
      {"key_1": "value 1"},
      {"key_2": "value 2"},
      {"key_3": "value 3"},
      {"key_4": "value 4"},
      {"key_5": "value 5"},
      {"key_6": "value 6"},
      {"key_7": "value 7"},
      {"key_8": "value 8"}
  ]
}

is there a way for me to get which index is that key_id that i provided:

key = "key_3";
index_number = find index of key; 

Upvotes: 0

Views: 1500

Answers (2)

andri
andri

Reputation: 1021

Try this :

var obj = {
  "items":[
      {"key_1": "value 1"},
      {"key_2": "value 2"},
      {"key_3": "value 3"},
      {"key_4": "value 4"},
      {"key_5": "value 5"},
      {"key_6": "value 6"},
      {"key_7": "value 7"},
      {"key_8": "value 8"}
  ]
};

function getIndexOfKey(key){
    for (var i = 0; i < obj.items.length; i++)
    {
        if (typeof(obj.items[i][key]) != 'undefined')
        {
            return i;
        }
    }    
    return -1;
}

You can see it in action here : http://jsfiddle.net/GTXBU/

Upvotes: 2

alt-ctrl-dev
alt-ctrl-dev

Reputation: 701

You can try some thing like this:

var obj = {
"items":[
  {"key_1": "value 1"},
  {"key_2": "value 2"},
  {"key_3": "value 3"},
  {"key_4": "value 4"},
  {"key_5": "value 5"},
  {"key_6": "value 6"},
  {"key_7": "value 7"},
  {"key_8": "value 8"}
  ]
}
var key = "key_3";
for(var index in str.items){
if(str.items[index][key]!=undefined) break;
}
console.log(index);

Upvotes: 0

Related Questions