У меня есть JSON объект, подобный этому
xyz = {
"101": {
"categoryName": "ectronics",
"categorslug": "electronics",
"catId": "101",
"name": [
{
"childCategoryName": "Cameras",
"childCategorySlug": "cameras",
"childCategoryId": "102",
"childCategoryParentId": "109"
},
{
"childCategoryName": "Accessories",
"childCategorySlug": "cameras-and-accessories",
"childCategoryId": "102",
"childCategoryParentId": "111"
},
{
"childCategoryName": "ras & Accessories",
"childCategorySlug": "cameras-and-accessories",
"childCategoryId": "102",
"childCategoryParentId": "112"
}
]
},
"109": {
"categoryName": "shion",
"categorslug": "fashion",
"catId": "109",
"name": [
{
"childCategoryName": "Fashion Accessories",
"childCategorySlug": "fashion-accessories",
"childCategoryId": "110",
"childCategoryParentId": "109"
}
]
},
"118": {
"categoryName": "Baby & Kids",
"categorslug": "baby-and-kids",
"catId": "118",
"name": [
{
"childCategoryName": "Baby Footwear",
"childCategorySlug": "baby-footwear",
"childCategoryId": "119",
"childCategoryParentId": "118"
}
]
}
}
Теперь у меня есть фильтр категорий, основанный на поисковых запросах. Я должен уменьшить объект, я делал это, но проблема в том, что я не могу уменьшить его от совпадающего объекта.
Решение, которое я пробовал, состоит в следующем:
topIds = (event) => {
let rs = [];
let inn = '';
let cat = xyz;
for (let i in cat){
for( let j in cat[i].name ){
inn = cat[i].name[j].childCategoryName
if ( inn.toLowerCase().search(event.target.value.toLowerCase()) !== -1 ){
rs.push(cat[i].name[j].childCategoryParentId)
}
}
}
console.log('Filtered Ids', rs);
this.elm(cat, rs)
}
elm = (cat, rs) => {
let filtered = rs.map(function (k){
return cat[k]
})
console.log('Filtered va;ues', filtered);
return filtered;
}
Работает нормально, но вместо того, чтобы соответствовать возвращаемому полному объекту, указывает на то, что я ошибаюсь здесь.
Итак, технически, если пользователь говорит, что искать "Камеры"
Он должен вернуться, как это,
{
"101": {
"categoryName": "ectronics",
"categorslug": "electronics",
"catId": "101",
"name": [
{
"childCategoryName": "Cameras",
"childCategorySlug": "cameras",
"childCategoryId": "102",
"childCategoryParentId": "109"
}
]
}
}
Благодарю вас, ребята, заранее.