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

标签 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,
        }
    ]
}

最佳答案

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

您可以使用find相反:

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

关于javascript - 为什么我的 JSON 获取查询返回未定义的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017089/

相关文章:

javascript - 从子窗口设置父窗口 URL?

javascript - 适用于 Google 表格的 Apps 脚本(onedit 功能)

javascript - 将变量传递给 foreach 函数

javascript - 如何提取/哪里具有数组属性的 javascript 列表

javascript - JSON.parse() : SyntaxError: Unexpected token � in JSON at position 0

javascript - 如何在事先不知道属性名的情况下解析 JSON 数据?

javascript - 在 Node js 模块中传递 Node 间依赖

.net - 在 SharePoint 搜索页面中同时更新面板、JavaScript 回发和更改查询字符串

javascript - getJSON 返回 200 但错误

php - Android JSONPARSER致命异常: AsyncTask