Вы можете использовать reduce
, а затем Array.fill
. Здесь редукция создаст объект, подобный этому
{
"1": 4,
"2": 3,
"4": 1,
"5": 1,
"10": 1,
"20": 2,
"391": 1,
"392": 1,
"591": 1
}
, что означает, что есть 4
1s
, 3
2s
и так далее. Затем вы можете использовать заполнение массива после итерации этого объекта. Синтаксис массива fill
имеет вид arr.fill(value[, start[, end]])
. Таким образом, в нашем случае new Array(k[keys]).fill(+keys, 0, k[keys])
будет создан новый массив длины 4
, 3
и т. Д., За исключением 1
и 0 Индекс заполняется ключом
let arr = [1, 2, 4, 591, 392, 391,1, 2, 5, 10, 2, 1, 1, 1, 20, 20];
let k = arr.reduce(function(acc, curr) {
if (curr in acc) {
acc[curr] += 1;
} else {
acc[curr] = 1
}
return acc;
}, {});
let grouped = [];
for (let keys in k) {
if (k[keys] !== 1) {
grouped.push(new Array(k[keys]).fill(+keys, 0))
} else {
grouped.push(+keys)
}
}
console.log(grouped)
Объекты решения не используются скомпилированными блоками.
http://msdn.microsoft.com/en-us/library/1ee8zw5t.aspx "На них могут сослаться проекты, но никогда не включают в решение или сборки проекта"
Насколько я знаю, папки/объекты решения действительно просто предназначены для организации вещей.
Вы получаете фактические ошибки сборки или просто загогулины? Попытайтесь создать и посмотрите на окно вывода, оно успешно выполняется или перестало работать?
В SP1 C# VS 2008 представил высокоуровневую ошибку squiggling функция. Возможно, что при открытии версии объекта решения файла, это будет загогулина из-за отсутствия ссылок по умолчанию. Решение должно все еще создать правильно все же.
Если дело обстоит не так пытаются добавить файл непосредственно к проекту (никакая ссылка). Посмотрите, устраняет ли это ошибку. Раз так затем мы знаем, что это имеет к должному со связанным файлом, и это может помочь разыскать проблему.
Скорее всего, вам не хватает ссылки на DLL DataVisualization. Обратите внимание, что, хотя они разделяют пространство имен System.Windows.Forms.dll, на самом деле они не содержатся в нем.