Вы можете использовать функцию reduce
для группировки и функцию Object.values
для извлечения сгруппированных объектов.
let types = [ { "ProcessCode": "b4919f5a-98cf-e711-80f3-1458d0431600", "ProcessName": "processX", "DocumentCode": 1, "DocumentName": "doc1" }, { "ProcessCode": "b4919f5a-98cf-e711-80f3-1458d0431600", "ProcessName": "processX", "DocumentCode": 2, "DocumentName": "doc2" }, { "ProcessCode": "b4919f5a-98cf-e711-80f3-1458d0431600", "ProcessName": "processX", "DocumentCode": 4, "DocumentName": "doc4" }, { "ProcessCode": "09c27913-98cf-e711-80f3-1458d0431600", "ProcessName": "processY", "DocumentCode": 1, "DocumentName": "doc1" }, { "ProcessCode": "09c27913-98cf-e711-80f3-1458d0431600", "ProcessName": "processY", "DocumentCode": 2, "DocumentName": "doc2" }];
let result = Object.values(types.reduce((a, {ProcessCode, ProcessName, DocumentCode, DocumentName}) => {
(a[ProcessCode] || (a[ProcessCode] = {ProcessCode, ProcessName, Docs: []})).Docs.push({DocumentCode, DocumentName});
return a;
}, Object.create(null)));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Измените свой файл php.ini, строка, которая говорит что error_reporting к E_ALL.
Т.е.:
error_reporting = E_ALL
Если у Вас есть доступ к Вашему php.ini, то ответ Björn является способом пойти.
Однако, если Вы не делаете, или если Вы хотите изменить конкретный сценарий / ошибочный уровень проекта, сделайте это в начале своего кода:
ini_set('display_errors', 1);
// Enable error reporting for NOTICES
error_reporting(E_NOTICE);
Вы видите, какие уровни доступны для error_reporting здесь: http://us2.php.net/manual/en/function.error-reporting.php.
Это всегда - хорошая практика для не показа любых ошибок на продуктивных средах, но регистрирующий любые странные поведения и отправляющий почтой администратору. УВЕДОМЛЕНИЯ должны только быть включены на средах разработки.
Seb является правильным, хотя действительно необходимо использовать постоянный для error_reporting ().
error_reporting(E_NOTICE);
Можно использовать битовые операции для выбора точно сообщений, которые Вы хотите отобразить. Например:
// notices and warnings
error_reporting(E_NOTICE | E_WARNING);
// everything except errors
error_reporting(E_ALL ^ E_ERROR);