2015-07-21 45 views
1

如何获取我的结构中特定值的JSON索引?比方说,我想知道的"year": 2080指数这将等于索引1在请求的JSON中获取特定值的索引

{"elements":[ 
    { 
     "year": 1971, 
    }, 
    { 
     "year": 2080, 
    }, 
    { 
     "year": 3060, 
    } 
]} 

林请求像这样:

var jsonUrl = "myurl.json"; 
$.getJSON(jsonUrl, { 
    format: "json" 
}) 
.done(function(data) { 
    $.each(data, function (index, item) { 
     //traverse through JSON 
    }); 
}); 

回答

1

退房Array.prototype.findIndex()

var idx = data.elements.findIndex(function(el) { 
    return el.year === 2080; 
}); 

请注意,这是一个ES6 +方法,所以它在旧版浏览器中默认不可用。然而,这对polyfill来说是微不足道的。

或者,你可以踢它老学校:

var idx = -1; 

for (var i = 0, len = data.elements.length; i < len; i++) { 
    if (data.elements[i].year === 2080) { 
     idx = i; 
     break; 
    } 
}