0

I have a JSON array (javascript). I am using linq.js to filter/query the array and find a single element/first element. What is the correct syntax?

My data:

[{
    "Fname": "Chinmaya",
    "Lname": "Bhatta",
    "DOB": "/Date(328645800000)/",
    "PassportNumber": "",
    "Expirydate": "/Date(315513000000)/",
    "Mobilenum": "91-9740814702",
    "EmailID": "santu.yyyyy@yahoo.com",
    "IssueCountry": ""
},
    ...
]

My code:

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();

But it is throwing error. Can someone tell me what is the right syntax for querying based on Fname & Lname? BTW fulllist is the name of my array.

Thanks in advance.

4

1 回答 1

2

jsFiddle

就像使用 SQL 查询一样,您必须指定“where”子句来过滤整个数据集的结果:

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();
于 2014-08-04T07:01:34.460 回答