Javascript 然后返回分组列表的第一个值

Javascript 然后返回分组列表的第一个值,javascript,immutable.js,Javascript,Immutable.js,在Immutable.js中,是否可以将groupBy()作为一个值,比如说id,然后在map()中基本上取组的第一个值,向其附加一个新属性,然后返回单个项?如果没有,是否有人对如何使这项工作提出建议 fromJS([ {'id':1, 'x':2}, {'id':2, 'x':3}, {'id':2, 'x':4} ]) .groupBy(item => item.get('id')) .map(values => {

在Immutable.js中,是否可以将
groupBy()
作为一个值,比如说
id
,然后在
map()中基本上取组的第一个值,向其附加一个新属性,然后返回单个项?如果没有,是否有人对如何使这项工作提出建议

    fromJS([  {'id':1, 'x':2},
      {'id':2, 'x':3},
      {'id':2, 'x':4}
    ])
    .groupBy(item => item.get('id'))
    .map(values => {
        let item = values.first();
        return item.merge({
            xs: values.map(d => d.get('x'))
        })
    });
    // expected output as a List() - 
      [
       {'id':1, 'x':2, 'xs': [2]},
       {'id':2, 'x':3, 'xs': [3, 4]}
      ]

是的,您可以
groupBy
id,实际上您非常接近您想要的解决方案,但是缺少
.toArray()

var out=Immutable.fromJS([
{'id':1,'x':2},
{'id':2,'x':3},
{'id':2,'x':4}
])
.groupBy(item=>item.get('id'))
.map(值=>{
让item=values.first();
返回项。合并({
xs:values.map(d=>d.get('x'))
});
}).toArray();
log(JSON.stringify(out))
我想你可能想要而不是
。toArray()