使用Linq.js从Json数据中选择三个字段中的两个字段

时间:2013-02-28 08:07:24

标签: javascript underscore.js linq.js

我需要使用 Linq.js

Json 数据中的三个字段中选择两个字段

必需的输出应为

[{ "A": -27, C: "country 1" } , { "A": 28 , C: "country 2"} ] 

使用以下路径中的“linq.js”:[https://raw.github.com/gist/1175460/fb7404d46cab20e31601740ab8b35d99a584f941/linq.js]

示例数据

var Data = [{ "A": -27, "B": -39, C: "country 1" }, { "A": 28, "B": 0 , C: "country 2"}]

var filter = "  x =>    x['A'], x['C']  ";
var findItem = Enumerable.From(Data)
.Select(filter)
.ToArray();

console.log(findItem);

代码在JsFiddle:http://jsfiddle.net/gLXNw/9/

2 个答案:

答案 0 :(得分:7)

你的“lambda”函数必须返回一个有效的java对象。

您的查询应该更像这样:

var query = Enumerable.From(data)
    .Select("x => { A: x['A'], X: x['C'] }") // object initializer
    .ToArray();

答案 1 :(得分:7)

你可以在结果选择器中使用函数而不是lambda(如果lambda表达式不是出于政治原因使用的话:) :( / p>

var findItem = Enumerable.From(Data)
.Select(function(x){
    return {
        'A': x['A'], 
        'X': x['C']
    };
}).ToArray();