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

irf*_*nir 2 javascript underscore.js linq.js

我需要使用Linq.jsJson数据中选择三个字段中的两个字段

所需的输出应该是

[{ "A": -27, C: "country 1" } , { "A": 28 , C: "country 2"} ] 
Run Code Online (Sandbox Code Playgroud)

使用以下路径中的"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);
Run Code Online (Sandbox Code Playgroud)

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

Jef*_*ado 7

您的"lambda"函数必须返回有效的java对象.

您的查询应该更像这样:

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


Ser*_*gii 7

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

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