我使用react-native制作了一个应用程序,我从api获取数组。像下面的对象一样,它具有多个对象,我正在尝试将所有对象过滤到类别中。
Object {
"artists": Array [
"A",
"J",
"At",
],
"average_user_rating": 4,
"categories": Array [
Object {
"id": "KUBdKCFGwV",
},
Object {
"id": "ZTNeo8TEIO",
},
Object {
"id": "O0ogwzULe8",
},
],
"description": "",
},
im尝试使用下面的代码对其进行过滤,但我一直不成功
category = "KUBdKCFGwV"
const filterCate = (category) => {
return results.filter(result => {
if (result.categories.includes(category)) return result.categories;
})
};
答案 0 :(得分:1)
由于categories
属性是一个对象数组,因此您需要比较它们的id
属性。您可以使用some()
方法来测试是否有任何类别与所需类别匹配。
const filterCate = (category) => results.filter(result => result.categories.some(cat => cat.id == category));
答案 1 :(得分:0)
您试图过滤对象,但过滤功能无法做到。尝试过滤results.categories
,然后检查category id
是否与filterCate
参数匹配
const results = {
"artists": [
"A",
"J",
"At",
],
"average_user_rating": 4,
"categories": [
{
"id": "KUBdKCFGwV",
},
{
"id": "ZTNeo8TEIO",
},
{
"id": "O0ogwzULe8",
},
],
"description": "",
};
const category = "KUBdKCFGwV"
const filterCate = (category) => {
return results.categories.filter(cats => {
if (cats.id.includes(category)) return cats.id;
})
};
console.log(filterCate(category));