Json 是否有一个内置命令返回哪个数组元素包含javascript中的特定字符串
我的问题是,是否有一个命令可以为我返回哪个对象具有特定的数据。例如,如果我有以下json数据,我想知道哪个条目的序列号为11,它应该向我返回该条目的索引,即0:Json 是否有一个内置命令返回哪个数组元素包含javascript中的特定字符串,json,node.js,Json,Node.js,我的问题是,是否有一个命令可以为我返回哪个对象具有特定的数据。例如,如果我有以下json数据,我想知道哪个条目的序列号为11,它应该向我返回该条目的索引,即0: [ { "Barcode": "123451", "serialNumber": "11" }, { "Barcode": "1234512", "serialNumber": "12" }, { "Barcode": "123451", "serialNumber":
[
{
"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)
wasfunction(object)
I修复了它,它返回什么,我是console.loging它和它的声明未定义比较是错误的,因为serialNumber是一个字符串,现在应该可以工作了。谢谢,这正是我想要的
var obj = data.find(function(obj){
return obj.serialNumber === '13';
});
data.find(e => e.serialNumber === '13')