【发布时间】:2013-01-08 18:05:04
【问题描述】:
如何更正以下代码以获得所需的输出,
var Data = [{ "A": -27, "B": -39 }, { "A": 28, "B": 0}]
var filter = "x[A]==28";
var findItem = Enumerable.From(Data)
.Where(function (x) { return filter ; })
.ToArray();
alert(findItem.length);
$.each(findItem, function (i, value) {
alert(value["A"]);
});
它应该给我一个值A:28或完成一个记录{“A”:28,“B”:0},为什么我得到两个值,如何得到正确的结果?
从以下路径使用“linq.js”: [https://raw.github.com/gist/1175460/fb7404d46cab20e31601740ab8b35d99a584f941/linq.js]
JSfiddle 上的代码:http://jsfiddle.net/Irfanmunir/gLXNw/2/
【问题讨论】:
-
您正在返回一个字符串,它是“truthy”(评估为 true)。您可能希望在 where 回调中实际评估您的过滤器:
.Where(function (x) { return x['A'] == 28; }) -
它不起作用,因为我正在为 where 子句传递变量字段。下面提到的解决方案有效
-
能否更新一下linq.js 路径。你给的路径坏了,所以所有的jsfiddle都不起作用。
标签: javascript underscore.js linq.js