У меня есть URL с параметрами запроса, который выглядит примерно так &rootDimension=availability%253AOnlinepipsymbBrand%253ADell%253ABICpipsymbProduct%2520Rating%254A3%2520stars%2520and%2520above
Я делаю decodeURIComponent(query.rootRootdimension).split("pipsymb")
, который возвращает массив, который выглядит следующим образом ["availability:Online", "Brand:Dell:BIC", "Product Rating:4 stars and above"]
Я в принципе нужно проверить массив и удалить ключи, которые не являются "Бренд" или "Рейтинг продукта". Так что в этом случае он должен возвращать массив ["Brand:Dell:BIC", "Product Rating:4 stars and above"]
.
Если рейтинг продукта "4 звезды и выше", замените его на "Лучший рейтинг", если нет, то просто сохраните рейтинг, например ["Brand:Dell:Bic", "Product Rating: "3 stars and above"]
. Массив должен выглядеть следующим образом ["Brand:Dell:BIC", "Product Rating:Top Rated"]
.
Результат, который я ищу: ["Dell", "Bic", "Top Rated"]
Я попробовал функцию ниже и несколько других вещей, но я не получил то, что искал. Спасибо за помощь / предложения!
const getRefinements = (query) => {
decodeURIComponent(query.rootDimension).split("pipsymb").reduce((obj, str) => {
let strParts = str.split(/::|:/);
if (strParts[0] && strParts[1]) {
obj[strParts[0].replace(/\s+/g, "")] = strParts[1];
return Object.values(pick(obj, ["Brand", "ProductRating"]))
}
})
}