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

How to fetch corresponding value present under JSON Array

本文关键字:存在 数组 JSON 何获取 获取      更新时间:2023-09-26

>我有一个如下所示的JSON

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

我有vendor_name,例如测试 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/

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

你可以

用一个稍微整洁的方法:

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

或使用下划线/下划线:

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];