arrays - Reactjs - 过滤对象
问题描述
我正在尝试过滤一组对象。数组和过滤器/映射如下。知道为什么这不返回链接吗?
大批:
const icons = [
{
color: "Yellow",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png",
},
{
color: "blue",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png",
},
{
color: "Green",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_green.png",
},
{
color: "White",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_white.png",
},
{
color: "Orange",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_orange.png",
},
{
color: "Gray",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_gray.png",
},
{
color: "Purple",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_purple.png",
},
{
color: "Red",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png",
},
{
color: "Black",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_black.png",
},
{
color: "Brown",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_brown.png",
},
];
过滤方法:
icon= {this.props.icons.filter(icons => icons.color.toLower == 'blue').map((icons) => {return icons.link})}/>
整个方法:
renderMarker = this.props.mapData.map((item) => {
return item.dataset.map((item2) => {
return item2.dataPoint.map((item3) => {
return <Marker
onClick={this.onMarkerClick}
name={item3.name}
name2={item3._id}
position={{ lat: item3.lat, lng: item3.lng }}
key={item3._id}
icon= {this.props.icons.filter(icons => icons.color.toLower == 'blue').map((icons) => {return icons.link})}/>
})
})
解决方案
您需要做的就是将 更改.toLower
为.toLowerCase()
.
我已经使用[0]
索引来获取link
. 因此,您需要检查Marker
组件中是否存在一条线。
const result = icons
.filter((icon) => icon.color.toLowerCase() === "blue")
.map((icons) => {
return icons.link;
})[0];
console.log(result);
<script>
const icons = [
{
color: "Yellow",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_yellow.png",
},
{
color: "blue",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png",
},
{
color: "Green",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_green.png",
},
{
color: "White",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_white.png",
},
{
color: "Orange",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_orange.png",
},
{
color: "Gray",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_gray.png",
},
{
color: "Purple",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_purple.png",
},
{
color: "Red",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png",
},
{
color: "Black",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_black.png",
},
{
color: "Brown",
link: "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_brown.png",
},
];
</script>
推荐阅读
- kubernetes - 在 KubernetesExecutor 上运行气流时出现气流错误“找不到 dag_id”
- .net - 无法在 Azure Devops 上使用 DotNetCoreCLI 任务恢复 .Net Core 解决方案
- python - 如何跟踪矩阵中的路径?
- sql - 我正在从视图中删除带有检查选项的约束,但它没有被强制执行
- sql - 为什么我在 SQL 中连接两个表时主键重复?
- c++ - 在管道之前应用投影以查看或操作
- node.js - 将承诺插入到预先存在的功能中
- python - 在张量流中保存和加载模型
- mysql - 插入带有 where 子句的 sql 语句
- angular - Angular 10 应用程序不会在跨域请求中发送 JWT 刷新令牌