Javascript 从 JSON 数组中提取特定记录

标签 javascript json

我有一个像这样的 JSON 数组:

[{"Name":"Bob", "EmployeeID":1234, "StartDate":"12/01/2011"},
 {"Name":"Jim", "EmployeeID":4432, "StartDate":"01/12/1997"},
 {"Name":"Heather", "EmployeeID":6643, "StartDate":"07/09/2010"}]

我如何使用 Javascript 通过 EmployeeID (4432) 搜索查找和检索 Jim 的记录?

最佳答案

您可以使用过滤器:

var records = [{"Name":"Bob", "EmployeeID":1234, "StartDate":"12/01/2011"},
   {"Name":"Jim", "EmployeeID":4432, "StartDate":"01/12/1997"},
   {"Name":"Heather", "EmployeeID":6643, "StartDate":"07/09/2010"}];

var result = records.filter(function(r) { return r["EmployeeID"] == 4432 })[0]||'No record found';

搜索功能可以实现如下:

function findByEmployeeId(records, employeeId) {
   return records.filter(function(r) { return r["EmployeeID"] == employeeId })[0]||null;
}

一般来说,如果您对数据有任何控制权,我会建议更改结构以使您的生活更轻松。如果使用以下结构,则可以使用 records[employeeId] 直接访问记录:

{ "1234" : {"Name":"Bob", "EmployeeID":1234, "StartDate":"12/01/2011"},
  "4432" : {"Name":"Jim", "EmployeeID":4432, "StartDate":"01/12/1997"},
  "6643" : {"Name":"Heather", "EmployeeID":6643, "StartDate":"07/09/2010"} }

关于Javascript 从 JSON 数组中提取特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114097/

相关文章:

php - 使用 PHP 检查 Android 数组中的值是否存在于 MySQL 列中,如果存在则返回记录

javascript - 有没有办法实用地检测IE11企业模式?

javascript - Nuxt中如何使用动态图片?

javascript - 在 setState 之后使用 setTimeout 来避免异步问题

json - 需要帮助推断 NiFi 中 json 文件的 avro 架构

javascript - 无法将数据从跨域 json 分配给 Ajax 中的变量

java - Ajax 请求不适用于 Spring Controller

javascript - 如何在 Donut Legend 的 C3.js 中显示值?

python - 如何读取这个 JSON 文件?

javascript - 删除重复项后重建 JSON