繁体   English   中英

如何在JavaScript中的JSON数组中搜索特定参数?

[英]How to search particular parameter in an array of JSON in JavaScript?

我在这里做的很简单:使用他们的图形API获取Facebook新闻提要。 我正在接收json对象并将其提取到页面。 “喜欢”以JSON数组的形式出现(显然),如下所示:

数据赞:

{
    "count":2,
    "data":[
        {"name":"Jennifer Doe","id":"{user_id}"},
        {"name":"John Doe","id":"{user_id}"}
    ]
}

我的目标是知道当前用户是否喜欢它-假设我具有当前用户的user_id 那么,检查当前用户是否喜欢此帖子的最简单方法是什么?

我知道我可以设置循环并遍历每个数据,但这不仅效率低下,而且看起来很糟糕。 我也可以使用$.inArray()并查找特定的JSON对象,但我希望只能通过user_id进行搜索。

任何帮助,将不胜感激。 谢谢!

我立即想到两种解决方案:

-a这样的循环

for (jsonobj in data.likes.data){
  //scan each jsonobj for the user
}

-您也可以使用以下方法将JSON对象转换为字符串

JSON.stringify(jsonobj)

然后使用某种搜索方法在其中搜索用户ID(例如“搜索”: http : //www.w3schools.com/jsref/jsref_search.asp或indexOf: http : //www.w3schools.com/jsref /jsref_indexof.asp )。

如果您需要更多详细信息,我可以对此进行详细说明。

最简单的方法是执行一个for循环,您可以使用javascript eval方法创建一个通用方法,以仅返回您要查找的对象。

function searchArr(arr, field, val) {
  var output = [];
  for (var i = 0; i < arr.length; i++) {
    if (eval('arr[i].' + field) == val) {
      output.push(arr[i]);
    }
  }
  return output;
}

并可以通过您的数据调用这种方式var matches = searchArr(data, 'id', userId);

此方法适用于任何对象...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM