Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 林克JS。如何按重复分组?_Javascript_Linq_Linq.js - Fatal编程技术网

Javascript 林克JS。如何按重复分组?

Javascript 林克JS。如何按重复分组?,javascript,linq,linq.js,Javascript,Linq,Linq.js,我正在尝试将linqJS用于以下对象数组: var foo = [ { id: 1234, index: 0, }, { id: 1234, index: 1, }, { id: 5678, index: 2, }, { id: 9123, index: 3, } ]; 我要做的是将那些重复的id的对象分

我正在尝试将linqJS用于以下对象数组:

var foo = [
    {
        id: 1234,
        index: 0,
    },
    {
        id: 1234,
        index: 1,
    },
    {
        id: 5678,
        index: 2,
    },
    {
        id: 9123,
        index: 3,
    }
];
我要做的是将那些重复的id的对象分组,然后从该组中选择索引更大的对象,在本例中为foo[1]。我没有太多使用linq,所以我不确定这是否可行,这就是我目前得到的:

var bar = Enumerable.From(foo)
    .GroupBy(function (x) { return x.id == x.id; })
    .ToArray();
但它不起作用。。。 我知道如何使用vanilla JS实现这一点,但我希望使用该插件

谢谢你的帮助

jsiddle:

试试这个:

Enumerable.From(foo)
          .GroupBy(function(x) { return x.id })
          .Select(function(x)
                  {
                  return x.Max(function(z) { return z.index });
                  })
          .ToArray();
.GroupBy(函数(x){return x.id;})
var bar = Enumerable.From(foo)
    .GroupBy("$.id")
    .Select("$.OrderByDescending('$.index').First()")
    .ToArray();