javascript - 数组的过滤结果
问题描述
我正在使用 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": "",
},
我试图使用下面的代码过滤它,但我没有成功
category = "KUBdKCFGwV"
const filterCate = (category) => {
return results.filter(result => {
if (result.categories.includes(category)) return result.categories;
})
};
解决方案
由于categories
属性是对象数组,因此需要比较它们的id
属性。您可以使用该some()
方法测试是否有任何类别与所需类别匹配。
const filterCate = (category) => results.filter(result => result.categories.some(cat => cat.id == category));
推荐阅读
- vue.js - 在 nativescript vue 中调用 *.aar 文件(android 库)
- angularjs - 剑道树列表显示无记录的自定义消息
- flutter - 如何从 Flutter 中的路由中删除第一个屏幕?
- android - 使用 Retrofit 获取数据并插入 SQLite 数据库
- haskell - 如何理解这个 State Monad Haskell 代码片段中的 evalState?
- javascript - 使用两种形式未检测到两个脚本 keydown
- php - 我如何将删除xampp密码更改为无密码?
- javascript - React 中哪种方法更好?
- javascript - Rails 使用带有acts_as_votable 的Ajax 支持/反对
- laravel - 在 laravel 中实现存储库模式的官方方法