Вы передаете ссылку на массив, и каждый элемент использует одну и ту же ссылку на объект для данного массива.
Вы можете использовать функцию, которая возвращает новый массив для каждого вызова.
Array.dim = function(dimensions, init) {
var a = [],
i;
for (i = 0; i < dimensions; i++) {
a[i] = typeof init === 'function' ? init() : init;
}
return a;
}
var p = Array.dim(20, 0),
q = Array.dim(10, () => []);
q[0][0] = 0;
console.log(p);
console.log(q);
Немного более короткий подход.
Array.dim = function(length, init) {
return Array.from({ length }, typeof init === 'function' ? init : () => init);
}
var p = Array.dim(20, 0),
q = Array.dim(10, () => []);
q[0][0] = 0;
console.log(p);
console.log(q);
Что-то вроде этого должно работать:
(from p in DataContext.Hits
where (p.Date >= minDate) && (p.Date < maxDate)
group p by p.Page into g
select new { Page = g.Key, Number = g.Count() }).OrderByDescending(x => x.Number).Take(10);
var top10hits = objectContext.Hits
.Where(h => minDate <= h.Date && h.Date < maxDate)
.GroupBy(h => h.Page)
.Select(g => new { Page = g.Key, Number = g.Count() })
.OrderByDescending(x => x.Number)
.Take(10);