首页 文章

在JSON中搜索值并返回到控制台

提问于
浏览
-1

我试图通过浏览器使用用户的输入字段搜索JSON文件中的值 .

对象数组中的示例JSON对象如下所示:

我有一个事件监听器等待用户点击 . 用户单击该功能后,将转到api json站点并检索所有数据 .

接下来,我想在该JSON数据中搜索用户键入的内容 .

例:

用户输入:“炮弹”

预期产量:196(buy_average)

但是我无法弄清楚如何搜索对象数组 .

Here's what I got:

参数“data”是从API检索的JSON对象 . 我知道它可以正常工作,因为我可以在控制台中显示它 .

function renderHTML(data) {
  var searchVal = document.getElementById("search").value;
  console.log(searchVal);
  for (i=0; i<data.length; i++) {
    if (data["i"].name == searchVal) {
      console.log(data["i"].buy_average);
    }
  }
};

到目前为止,我只是试图在从Web检索它并将其显示到控制台后,如何查看对象数组 .

当我点击按钮时,除了用户的输入之外,控制台中似乎没有发生任何事情 . 我怎样才能解决这个问题?

2 回答

  • 2

    如果数据是对象,则 length 属性将为您提供 undefined . 您可以使用Object.values()获取值,然后遍历属性 .

    let data = {
        0:{        id:0,name:"aa"    },
        1:{        id:1,name:"Cannonball"},
        2:{        id:2,name:"xx"    },
    };
    
    let searchVal = "Cannonball";
    Object.values(data).forEach(e=>{
       if(e.name === searchVal){
           console.log("This is the object: ");
           console.log(e);
       }
    });
    
  • 1

    尽量不要将 i 用作字符串 - 而是将其用作整数:

    if (data[i].name == searchVal) {
      console.log(data[i].buy_average);
    }
    

相关问题