javascript - 过滤数组,然后在数组中映射数组
问题描述
很确定我错过了一些简单的东西,但是这段代码让我很头疼。
我array
在本地json
文件中有一个
{
"type": [
{
"name": "Accommodation",
"icon": "",
"subcategory": [
"Hotels",
"Motels",
"Bed & Breakfasts"
]
},
{
"name": "Guided Tours",
"icon": "",
"subcategory": [
"Audio & Self Guided",
"Cruises, Sailing & Water",
"Food, Wine & Nightlife"
]
}
]
}
并导入到 React 组件中
import { type } from './assets/json/company-type.json';
然后我正在使用filter
of name
(companyType
它基于一个或的select
值。在我映射返回的项目之前Accommodation
Guided Tours
map
subcategory
<ul>
{type
.filter(item => {
return item.name === companyType;
})
.map(item => {
item.subcategory.map(subcategory => {
<li key={subcategory}>
<label id={subcategory} htmlFor={subcategory}>
<input
type="radio"
name={subcategory}
value={subcategory}
/>
<span />
{subcategory}
</label>
</li>;
});
})}
</ul>
但是,没有返回任何内容。但是,如果我log
subcategory
在控制台中返回每个。我错过了什么?
解决方案
这是因为您没有从 .map() 方法返回。使用此修改后的代码,它将按预期工作
<ul>
{type
.filter(item => {
return item.name === "Accommodation";
})
.map(item => {
return item.subcategory.map(subcategory => {
return (
<li key={subcategory}>
<label id={subcategory} htmlFor={subcategory}>
<input
type="radio"
name={subcategory}
value={subcategory}
/>
<span />
{subcategory}
</label>
</li>
);
});
})}
</ul>
代码沙盒链接: https ://codesandbox.io/s/4881483j7x
推荐阅读
- authentication - asp.net core cookie 身份验证滑动过期不起作用
- objective-c - 从 Objective C 到 Swift 的代码转换
- javascript - Ionic 框架使 ios 设备中的 ng-href 无法使用“在新选项卡中打开”选项
- json - 如何在jmeter中使用json响应令牌
- node.js - 节点:无法使用 express 在 gRPC 回调中调用 continuation-local-storage 键
- android - 当自定义模型有一个自定义模型类型列表的子项时,Android Parcelable 不会传输所有数据
- android - Activity 与 RecyclerView 适配器通信(片段中的 Recyclerview)
- azure - Azure 上的 URL 重写配置
- java - JNA 调用中的间歇性内存损坏错误
- python - 根据列中的值删除行中的值,然后在 Pandas 中将单元格拆分为多行