【发布时间】:2014-07-05 11:38:21
【问题描述】:
我想使用 linq.js 按日期对以下数据进行分组。
data2 = [{
"date": 1399298400.0,
"adId": 1057946139383,
"impressions": 1000000
}, {
"date": 1399298400.0,
"adId": 3301784671323,
"impressions": 535714
}...... etc.
];
这是我的尝试:
var linq = Enumerable.From(data2);
data2 = linq.GroupBy(function (x) {
return x.date;
}).Select(function (x) {
return {
date: x.Key(),
impressions: x.Sum(function (y) {
return y.impressions | 0;
})
};
}).ToArray();
但是,它无法正常工作,因为 GroupBy 之前和之后的所有 impressions 的总和接近但不相同。
在这种情况下,在 linq.js 中使用 group by 的正确方法是什么?
这是an example in fiddle,此处包含完整的数据集,用于提醒使用GroupBy 前后的总展示次数。
【问题讨论】:
-
在我看来,
| 0是造成问题的原因。我从另一个 stackoverflow 帖子中复制了这段代码。| 0到底是做什么的? -
我应该是
||而不是|,这意味着如果表达式左侧的对象是null,则返回右侧的内容,即0。 -
那么出于好奇 - 只是 `` 做什么?
标签: javascript linq linq.js