Я пытался придумать самый описательный заголовок.
Я придумал решение, но оно ужасно неэффективно, как порядка O (n ^ 4) или около того, что жалко.
Я пытаюсь отфильтровать и вернуть список объектов на основе объекта-фильтра и соответствующих значений ключа.
У меня будет список фильмов movieList
, и я верну все фильмы, которые соответствуют всем парам ключ-значение, содержащимся в объекте movieFilter
. В случае genre
фильм должен быть одним из жанров. Так как продажи не включены в фильтр, мы не фильтруем его на основе этого.
let movieFilter = {
"genre": ["Action", "Romance"],
"director": "Bob",
"writer": ["Jim", "Dave", "Alice"],
"duration": "2"
}
let movie = {
"genre" : "Action",
"people": {
"director": "Bob",
"writer": "Alice"
}
"boxoffice": "9,000,000",
"duration": "2"
}
let movies = [{
"genre" : "Action",
"people": {
"director": "Bob",
"writer": "Alice"
}
"boxoffice": "9,000,000",
"duration": "2"
},
{
"genre" : "Comedy",
"people": {
"director": "Rose",
"writer": "Mike"
}
"boxoffice": "12,000,000",
"duration": "3"
}]
Проблема, с которой я столкнулся, заключается в том, что некоторые фильтры (например, фильтр genre
) находятся в массивах, а некоторые ключи фильма(как people
) вложены в объект, который я вынужден вкладывать в циклы, что увеличивает временную сложность.
Я мог бы изменить структуру фильтра, но то, как он сейчас работает, имеет смысл для меня. Формат объекта фильма - это то, что я не могу изменить.
Буду признателен за любые предложения о том, как мне справиться с этим.