为什么我的JSON提取查询返回未定义的值?

时间:2019-05-07 06:54:19

标签: javascript json

我正在尝试使用提取查询从JSON文件中查找一些特定数据,到目前为止我的代码如下:

function newfuntion() {
    var my_list = []
    fetch("url")
        .then(res => res.json())
        .then(data => {
            x= data.mydata.filter(el => el.Process==="process1")
            myvar = x.Shortnum
            console.log(myvar)
        })
}

我的问题是我将myvar定义为shortnum,它无法将查询范围缩小到Shortnum

如果我在没有.shortnum过滤器的情况下运行此程序,它将正常工作。即console.log(x)将返回进程为process1的字典。

以下是JSON文件的示例:

{
    "mydata": [
        {
            "Process": "process1",
            "Shortnum": "00000",
            "Status": 1,
        }
    ]
}

1 个答案:

答案 0 :(得分:4)

filter返回一个数组。您想要的可能是第一个(唯一?)匹配对象。

您可以改用find

let x = data.mydata.find(el => el.Process==="process1")
let myvar = x.Shortnum
console.log(myvar)