javascript - 如何过滤对象数组中的数组?

标签 javascript reactjs ecmascript-6

我正在尝试按标签过滤列表:

const initialState = [
     {id:1 ,name: 'Product A', image: 'pic-001.jpg', tags: ['nature', 'camping', 'outdoor']},
     {id:2 ,name: 'Product B', image: 'pic-002.jpg', tags: ['winter', 'hiking', 'camping', 'snow']},
     {id:3 ,name: 'Product C', image: 'pic-003.jpg', tags: ['vacation', 'family', 'kids', 'river', 'lake', 'fishing']}
   ]

我可以使用 mapfiltername 过滤列表,我的问题是当我尝试按标签列出产品时。我必须在我的产品过滤器中使用 foreach 吗?还有其他方法吗?

最佳答案

像那样吗?

const filter = 'nature';
const filteredResult = initialState.filter((item) => {
    return (item.tags.indexOf(filter) >= 0);
});

关于javascript - 如何过滤对象数组中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949792/

相关文章:

javascript - 在 ES6 Promise 中,我应该在解析/拒绝之前使用 return 吗?

javascript - 如何使用模板文字多次创建包含数据的行?

javascript - jquery 选择特定级别的子元素

javascript - 响应式 YouTube 模式和在移动设备上播放视频

javascript - 将数据库 ID 放在客户端的最佳位置在哪里?

javascript - 注销后清除 Firebase 持久性索引数据库

javascript - D3 : Spiral plot

reactjs - 分离我的 React Native 应用程序后我仍然可以使用 Expo 吗?

javascript - 从通过 React Router 设置的路由访问 Redux Store

javascript - 显示与 JSON 数据的 'Open Hours' 日期/时间对齐的 div