过滤数组的结果

时间:2019-11-17 21:42:55

标签: javascript jquery arrays react-native

我使用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;
        })

    };

2 个答案:

答案 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));

相关问题