Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 是否有一个内置命令返回哪个数组元素包含javascript中的特定字符串_Json_Node.js - Fatal编程技术网

Json 是否有一个内置命令返回哪个数组元素包含javascript中的特定字符串

Json 是否有一个内置命令返回哪个数组元素包含javascript中的特定字符串,json,node.js,Json,Node.js,我的问题是,是否有一个命令可以为我返回哪个对象具有特定的数据。例如,如果我有以下json数据,我想知道哪个条目的序列号为11,它应该向我返回该条目的索引,即0: [ { "Barcode": "123451", "serialNumber": "11" }, { "Barcode": "1234512", "serialNumber": "12" }, { "Barcode": "123451", "serialNumber":

我的问题是,是否有一个命令可以为我返回哪个对象具有特定的数据。例如,如果我有以下json数据,我想知道哪个条目的序列号为11,它应该向我返回该条目的索引,即0:

[
  {
    "Barcode": "123451",
    "serialNumber": "11"
  },
  {
    "Barcode": "1234512",
    "serialNumber": "12"
  },
  {
    "Barcode": "123451",
    "serialNumber": "13"
  }
]
所以基本上我在寻找类似于(includes)的东西,但不是说是真是假,而是说哪个对象有它:

var data = JSON.parse(body);
data.somthing("13") 
returns : index=2 or last object

您可以在数组中循环并使用


如果您担心性能问题,您必须使用其他数据结构或数据存储进行快速搜索。

假设数据是数组,您可以使用
查找
数组的方法

这就是or方法的用途:

data.find(e => e.serialNumber === '13') 

谢谢,但我正在尝试为我的应用程序尽可能避免循环,如果数组太大,这将是一个问题。在一组对象中搜索是个坏主意。如果需要性能,必须找到一种方法来索引数组中的数据。find()方法返回数组中满足所提供测试的第一个元素的值。我得到以下错误:return obj.serialNumber===13;^TypeError:无法读取的属性“serialNumber”undefined@nero有一个输入错误
function(obj)
was
function(object)
I修复了它,它返回什么,我是console.loging它和它的声明未定义比较是错误的,因为serialNumber是一个字符串,现在应该可以工作了。谢谢,这正是我想要的
var obj = data.find(function(obj){

    return obj.serialNumber === '13';

});
data.find(e => e.serialNumber === '13')