我有一个JSON数组(javascript)。我使用linq.js来过滤/查询数组并找到单个元素/第一个元素。什么是正确的语法?
我的数据:
[{
"Fname": "Chinmaya",
"Lname": "Bhatta",
"DOB": "/Date(328645800000)/",
"PassportNumber": "",
"Expirydate": "/Date(315513000000)/",
"Mobilenum": "91-9740814702",
"EmailID": "santu.yyyyy@yahoo.com",
"IssueCountry": ""
},
...
]
我的代码:
var tbl = $(this).closest('table');
var fname= $(tbl).find('[id*=txtFirstName]').val();
var lname= $(tbl).find('[id*=txtLastName]').val();
var filtered = Enumerable.From(fulllist)
.Select("$.Fname + ':'+ $.fname+")
.ToArray();
但这是投掷错误。有人可以告诉我基于Fname& amp;查询的正确语法是什么L-NAME? BTW fulllist是我的阵列的名字。
提前致谢。
答案 0 :(得分:2)
就像使用SQL查询一样,您必须指定'其中'用于过滤整个数据集的结果的子句:
var filtered = Enumerable
.From(data)
.Where("$.Fname == '" + fname + "' && $.Lname == '" + lname + "'")
.Select("$.Fname + ':' + $.Lname + ':' + $.DOB")
.ToArray();
您还可以使用接受回调函数的Where
语法的显式形式:
Where(function (x) { return x.Fname == fname && x.Lname == lname });
修改强>
要将过滤结果集设为JS对象数组,请移除对Select
(jsFiddle 2)的调用:
var filtered = Enumerable
.From(data)
.Where("$.Fname == '" + fname + "' && $.Lname == '" + lname + "'")
.ToArray();