Javascript 只有当组中的另一个键名匹配时,我如何才能从JSON API中提取键值?

Javascript 只有当组中的另一个键名匹配时,我如何才能从JSON API中提取键值?,javascript,jquery,Javascript,Jquery,这就是JSON文件的内容: { "page": 1, "total_pages": 10, "listings": [ { "name": "Bob", "occu": "Entry", "team": "Blue", "sec": 3, "days": 16 }, { "name": "Tom", "occu": "Advance", "team": "Main"

这就是JSON文件的内容:

{
  "page": 1,
  "total_pages": 10,
  "listings": [
    {
      "name": "Bob",
      "occu": "Entry",
      "team": "Blue",
      "sec": 3,
      "days": 16
    },
    {
      "name": "Tom",
      "occu": "Advance",
      "team": "Main",
      "sec": 1,
      "days": 23
    },

This continues on with hundreds of other entries...
例如,仅当“名称”为Tom时,我如何提取“天”的值


对不起,如果这是一个原始的问题,我只是开始开发,我正在做一个快速的项目,这将帮助我当地的体育团队,我在脚本或API方面还不是很先进。谢谢

您可以创建这样一个函数,它可以循环遍历对象的数组(
列表
):

getDaysFromListings = (listings, name) => {
    for (let listing of jsonObj.listings) {
        if (listing.name === name) {
            return listing.days;
        }
    }

    // didn't find 'Tom', return empty string
    return '';
}
然后,按如下方式调用函数:

// assuming your entire json object is stored in a variable called "json"
let days = getDaysFromListings(json.listings, 'Tom');
<div id="target"></div>
// assume you already stored the data in variable
document.getElementById('target').innerHTML = days;
由于变量
days
字符串的形式出现,因此可以使用
+days
将其转换为
数字

Edit:要将变量
days
添加到html中,首先,假设要将文本添加到如下所示的div中:

// assuming your entire json object is stored in a variable called "json"
let days = getDaysFromListings(json.listings, 'Tom');
<div id="target"></div>
// assume you already stored the data in variable
document.getElementById('target').innerHTML = days;
注意:您必须在加载上面的html
div
之后加载此javascript。

若要仅在“name”为Tom时提取“days”的值,需要通过
过滤
,然后
映射
days

let listings=[
{
“姓名”:“鲍勃”,
“占用人”:“条目”,
“团队”:“蓝色”,
“第3节:,
“天”:16
},
{
“姓名”:“汤姆”,
“占领”:“前进”,
“团队”:“主要”,
“sec”:1,
“天”:23
},
{
“姓名”:“汤姆”,
“占用”:“高级”,
“团队”:“Maiddn”,
“sec”:1,
“天”:55
}
];
const result=listings.filter(listing=>listing.name==“Tom”).map(listing=>listing.days);

控制台日志(结果)因为有很多方法可以实现这一点,而且我确信这可能不是最好的方法,其中一种方法是使用Array.prototype.find


到目前为止,您尝试了什么?可能重复,或者如何获取返回值并通过html将其显示在页面上?看起来我把一切都设置好了,控制台日志中没有错误,我只需要链接它。我尝试了一些东西,比如getElementById,但我认为这是错误的,因为没有显示任何内容。谢谢你的帮助。