如何获取JSON数组下的相应值

时间:2015-03-11 12:06:43

标签: javascript jquery

我有一个JSON,如下所示

[
    {
        "vendor_id": "5000819028",
        "vendor_name": "Test 01"
    },
    {
        "vendor_id": "5000823900",
        "vendor_name": "Test 03"
    }
]

我有vendor_name,例如Test 03

如何获取相应的vendor_id。

我这样做了,工作正常

var json = [
    {
        "vendor_id": "5000819028",
        "vendor_name": "Test 01"
    },
    {
        "vendor_id": "5000823900",
        "vendor_name": "Test 03"
    }
];

var vendorname = 'Test 03';

var result = '';

for(var i=0;i<json.length;i++)
{

    if(json[i].vendor_name===vendorname)
    {
        result = json[i].vendor_id ;
    }

}

alert(result);

http://jsfiddle.net/10nh59f4/3/

但还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:1)

你可以稍稍整理一下:

var result = null;
var vendername = 'Test 03';
json.some(function(item) {
    if ( item.vendor_name == vendername ) {
        result = item;
        return true;
    }
});

或使用下划线/ lodash:

var result = _.find(json, function(item) {
    return item.vender_name == vendername;
});

您也可以使用filter,但在完成所有项目之前不会停止:

var results = json.filter(function(item) {
    return item.vender_name == vendername;
});

// results is an Array, to get the first item use [0]:
var result = results[0];