JavaScript中的map函数结合React框架

js的map函数

话不多说,直接上代码

//创建数组
const myArry =[1,2,3,4,5,6]
//map中的箭头函数的功能是求数组中元素的平方
console.log("数组求平方"+myArry.map((item)=>(item*item)))
//原数组不会被改变
console.log("原数组"+myArry)

上述的代码中map函数的作用是循环遍历数组myArry中的元素,其中的箭头函数 箭头函数传送门 的作用是返回数组元素item的平方。(item可以认为是循环变量,依次为数组中的元素值)

实在看不懂的换下面代码

const myArry =[1,2,3,4,5,6]
 //求平方函数
const SQ = (item)=>(item*item)
//注意这里map中只写函数名字就行
console.log("数组求平方"+myArry.map(SQ))
console.log("原数组"+myArry)

另一种格式

const myArry =[1,2,3,4,5,6]
console.log("数组求平方"+myArry.map(function (item) {
   return item*item
}))
console.log("原数组"+myArry)

相比起来是不是箭头函数更省代码呢?

React中使用map函数

当然理解了上面的讲述,下面的应该容易理解一些,先来一个较简单的案例分析

render()
{ return(
	    <div className="row">
	        {
	            users.map((user,index)=>(
	                    <div className="card" key={index}>
	                    <a href={user.url} target="_blank">
	                        <img src={user.photo}
	                             style={{width: 100}}/>
	                    </a>
	                    <p className="card-text">{user.name}</p>
	                </div>
	            ))
	        }
	    </div>
	)
}

上面的代码中组件渲染的方法render中users是用户提前定义好的一个数组

//这里只是举个例子
users =[{url:xxx,photo:xxx,name:xxx},{url:xxx,photo:xxx,name:xxx},}]

箭头函数中的参数有两个值,一个是对应的元素,一个是索引,箭头函数返回值是一个div,div的key值是index,使用箭头函数时需要一个唯一标识index (这个必须有,不然会有警告,箭头函数中的参数是一一对应的,最好固定格式就不要颠倒了) div中的a标签的链接是数组子元素的url, img地址是数组子元素的photo,p标签的内容是数组子元素的name。

执行完之后时这个样子,当时网络不太好图片就没有加载出来

在这里插入图片描述

再看一个比上面难一点的例子

下面的代码和上面的例子用的是同一个users 上面users中的数据就是从这里来的

//我们实现定义好一个空的users
//这里直接对空的users进行使用,定义过程就不写了
const users = result.items.map(item=>{
    return{name:item.login,url:item.html_url,photo:item.avatar_url}
})

我们直接把上面的 result.items 看成一个整体就行,直接理解为数组a,下面直接用数组a来解释。数组a里面的内容是这样的 数组a就是图片中的items

在这里插入图片描述这里我们可以看到,数组a(items)中的元素是30个对象,但是我们只需要对象中的login、html_url和avatar_url,那我们就需要用到map函数,变量数组中的元素,返回一个新的对象,对象只包含我们需要的三个属性,其他的我们就不要了。这样解释之后是不就很清楚了呢?

文章若有错误还请指出,谢谢
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值