Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript通过id函数从数据中获取名称_Javascript - Fatal编程技术网

Javascript通过id函数从数据中获取名称

Javascript通过id函数从数据中获取名称,javascript,Javascript,我需要创建一个函数,在给定id时返回汽车的名称 我有以下数据: { "cars": [ { "id": "661", "name": "ford" }, { "id": "657", "name": "fiat", }, { "id": "654", "n

我需要创建一个函数,在给定id时返回汽车的名称

我有以下数据:

{
    "cars": [
        {
            "id": "661",
            "name": "ford"  
        },  

        {
            "id": "657",
            "name": "fiat",
        },

        {
            "id": "654",
            "name": "volvo",
        },

        {
            "id": "653",
            "name": "porche",
        },

        {
            "id": "650",
            "name": "mazda",
        }

    ]
}
所以我做到了:

function getCarNameFromId(id) {

    theData = {
        "cars": [
            {
                "id": "661",
                "name": "ford"  
            },  

            {
                "id": "657",
                "name": "fiat",
            },

            {
                "id": "654",
                "name": "volvo",
            },

            {
                "id": "653",
                "name": "porche",
            },

            {
                "id": "650",
                "name": "mazda",
            }

        ]
    };

    console.log(theData.name);

}
那就叫它:

function getCarNameFromId('650');

如何完成此代码,以便获得返回指定id名称的代码?

如果您使用的是任何现代浏览器,则可以使用find方法从数组中查找对象

function getCarNameFromId(id) {
    ......
    ..........
    .....
    var obj =  theData.cars.find( function(el) {
       return  el.id == id
    })
    if(obj){
       return obj.name
    } else {
       return ''; // or just without any value. 
    }
}
如果仍然想支持旧浏览器,我建议使用lodash.js或underline.js

js解决方案

var findCar=函数(id){
变量数据={
“汽车”:[{
“id”:“661”,
“名称”:“福特”
},
{
“id”:“657”,
“名称”:“菲亚特”,
},
{
“id”:“654”,
“名称”:“沃尔沃”,
},
{
“id”:“653”,
“姓名”:“波什”,
},
{
“id”:“650”,
“名称”:“马自达”,
}
]
};
对于(变量i=0;i
参考:


迭代cars数组并检查每次迭代时id是否匹配,找到时中断并返回。使用.each()进行迭代。
cars.find(car => car.id === id).name