解析JavaScript数组以获取特定值

时间:2014-02-04 20:36:11

标签: javascript json parsing

我有像

这样的JavaScript数组
var main = [
 { "title": "Yes", "path": "images/main_buttons/tick_yes.png"},
 { "title": "No", "path": "images/main_buttons/cross_no.png"},
]

我想获得具有特定path值的项目的相应title值。

这样的东西
var temp = "Yes";
var result = (path value where main[0].title == temp);

我想在这里获得result值。

如果temp == "No",它应该为我提供相应的path值。

3 个答案:

答案 0 :(得分:5)

您可以使用Array.prototype.filter方法:

var result = main.filter(function(o) {
    return o.title === temp;
});

var path = result.length ? result[0].path : null;

请注意,较旧的浏览器不支持.filter()方法。但是,您可以使用polyfill

答案 1 :(得分:1)

我会这样做

function getPath(title, arr) {
    for (var i=arr.length;i--;) {
        if (arr[i].title == title) return arr[i].path;
    }
}

称为

getPath('Yes', main); // returns the path or undefined

FIDDLE

答案 2 :(得分:1)

这是一种方式:

var myItem = (function(arr, val){
  for(var item in arr){
    if(!arr.hasOwnProperty(item) && arr[item].title == val){
      return arr[item];
    }
  }
  return null;
})(myJSArray, "valueToMatch");