2015-06-12 19 views
0

我想用LinqJS执行GroupBy功能,但它似乎不工作好...的GroupBy使用LinqJS

我的目标:

My object

我的代码:

Enumerable.From(obj).GroupBy('{name: $.name}', null, '{name: $.name}').ToArray(); 

结果:

enter image description here

应该是:

{name: toto, name: tata}

+0

你需要你的数组中获得独特的名字呢? Enumerable.From(obj).Select(“x => x.name”)。Distinct()。ToArray();也许这个? –

+0

你需要认识到的一点是,如果你曾经为某个键项目对象,你必须提供一个比较器。比较javascript对象没有任何意义(假设你没有定义['valueOf()'](http://stackoverflow.com/q/10339506/390278)函数),这就是为什么你需要它。 –

回答

2

在C#中,所需要的功能将类似于:

var result = list.GroupBy(x => x.name, x => x.name, (baseName, names) => new {name = baseName}).ToArray(); 

所以,在LinqJS,它看起来像:

var result = Enumerable.From(obj).GroupBy('x => x.name', 'x => x.name', 'baseName, names => {name: baseName}').ToArray(); 

enter image description here

但是,如果你只需要获得唯一的名称,你可以使用:

var result = Enumerable.From(obj).Select("x => x.name").Distinct().ToArray(); 

enter image description here

+0

谢谢你的工作。 ;) – tonymx227