Я поместил этот же код и в jsbin: https://jsbin.com/literefeqo/edit?js,console
Объяснение
Я получил массив объектов (1) и хотел бы преобразовать(возможно, используя карту) этот объект.Критерием преобразования является заданный массив (2), который соответствует свойству german
в arrObj
.Это означает, что если в arrObj
есть свойство german
, его следует «скопировать» и использовать в качестве ключа для получения resultObj (3).Если свойство german
отсутствует, то ключ должен быть «Неизвестен» или что-то в этом роде.
Примечание: в resultObj
может быть больше записей, например, Montag
.Таким образом, resultObj.Montag[i]
должен быть массивом объектов.
(1) Массив объектов
const arrObj = [
{
"day": {
"string": "Monday",
"Number": 1
},
"description": {
"type": "string",
"value": "The first day of the week"
},
"german": {
"type": "string",
"value": "Montag"
}
},
{
"day": {
"string": "Tuesday",
"Number": 2
},
"description": {
"type": "string",
"value": "The second day of the week"
}
},
{
"day": {
"string": "Wednesday",
"Number": 3
},
"description": {
"type": "string",
"value": "The third day of the week"
},
"german": {
"type": "string",
"value": "Mittwoch"
}
}
];
(2) Массив, который должен статьключ для нового объекта
const germanDays = ["Montag","Dienstag","Mittwoch","Donnerstag"];
(3) Результат должен выглядеть следующим образом:
const resultObj = {
"Montag": [
{
"day": {
"string": "Monday",
"Number": 1
},
"description": {
"type": "string",
"value": "The first day of the week"
},
"german": {
"type": "string",
"value": "Montag"
}
}
],
"Dienstag": [
{}
],
"Mittwoch": [
{
"day": {
"string": "Wednesday",
"Number": 3
},
"description": {
"type": "string",
"value": "The third day of the week"
},
"german": {
"type": "string",
"value": "Mittwoch"
}
}
],
"Donnerstag": [
{}
],
"Unknown": [
{
"day": {
"string": "Tuesday",
"Number": 2
},
"description": {
"type": "string",
"value": "The second day of the week"
}
}
]
};