У меня есть следующий объект:
{
"id": 2,
"name": "tes name",
"status": 0,
"categories": [
{
"category_id": 1,
"name": "taxes",
"description": "taxes",
"keys": [
{
"key_id": 1,
"value": "preset unique value if not overridden, real text value"
},
{
"key_id": 2,
"value": "test name"
}
]
},
{
"category_id": 2,
"name": "surcharges",
"description": "surcharges",
"keys": [
{
"key_id": 3,
"value": "preset value if not overridden, real text value"
},
{
"key_id": 5,
"value": ""
}
]
},
{
"category_id": 3,
"name": "errors",
"description": "errors",
"keys": [
{
"key_id": 6,
"value": "preset value if not overridden, real text value"
},
{
"key_id": 10,
"value": "unique value to test search"
}
]
}
]
}
Мне нужно обновить объект на основе: он должен содержать ключ в массиве ключей, если только key.value содержит строку ' unique 'в противном случае массив не должен содержать этот ключ в массиве ключей.
Ожидаемый результат:
{
"id": 2,
"name": "tes name",
"status": 0,
"categories": [
{
"category_id": 1,
"name": "taxes",
"description": "taxes",
"keys": [
{
"key_id": 1,
"value": "preset unique value if not overridden, real text value"
}
]
},
{
"category_id": 3,
"name": "errors",
"description": "errors",
"keys": [
{
"key_id": 10,
"value": "unique value to test search"
}
]
}
]
}
Я пробовал вложенный фильтр, но он не будет работать для меня, всегда получаю один и тот же объект как есть.
мой код:
var result = obj.categories.filter(function(category) {
return category.keys.filter(function(key) {
return key.value.includes(action.payload)
});
});
Есть предложения или где я ошибаюсь?