贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

iterable(JavaScript中的iterable有什么作用)

来源:网络转载 时间:2024-05-08 23:37:52

遍历array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。

具有iterable类型的集合可以通过新的for ... of循环来遍历。

for ... of循环是ES6引入的新的语法,请测试你的浏览器是否支持:

'usestrict';vara=[1,2,3];for(varxofa){}alert('你的浏览器支持for...of');

for ... of循环遍历集合,用法如下:

vara=['A','B','C'];vars=newset(['A','B','C']);varm=newMap([[1,'x'],[2,'y'],[3,'z']]);for(varxofa){//遍历Arrayalert(x);}for(varxofs){//遍历Setalert(x);}for(varxofm){//遍历Mapalert(x[0]+'='+x[1]);}

你可能会有疑问,for ... of循环和for ... in循环有何区别?

for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

当我们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果:

vara=['A','B','C'];a.name='Hello';for(varxina){alert(x);//'0','1','2','name'}for...in循环将把name包括在内,但Array的length属性却不包括在内。for...of循环则完全修复了这些问题,它只循环集合本身的元素:vara=['A','B','C'];a.name='Hello';for(varxofa){alert(x);//'A','B','C'}

这就是为什么要引入新的for ... of循环。

然而,更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:

vara=['A','B','C'];a.forEach(function(element,index,array){//element:指向当前元素的值//index:指向当前索引//array:指向Array对象本身alert(element);});

注意,forEach()方法是ES5.1标准引入的,你需要测试浏览器是否支持。

SetArray类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:

vars=newSet(['A','B','C']);s.forEach(function(element,sameElement,set){alert(element);});

Map的回调函数参数依次为valuekeymap本身:

varm=newMap([[1,'x'],[2,'y'],[3,'z']]);m.forEach(function(value,key,map){alert(value);});

如果对某些参数不感兴趣,由于JavaScript的函数调用不要求参数必须一致,因此可以忽略它们。例如,只需要获得Arrayelement:

vara=['A','B','C'];a.forEach(function(element){alert(element);});

到此,关于“JavaScript中的iterable有什么作用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注本站网站,小编会继续努力为大家带来更多实用的文章!

标签:iterable-

小程序如今是互联网的热门话题,对于用户来说小程序很好的解决了网站、公众号和APP无法解决的问题,无需下载即用即走。那么小程序对企业有何作用?定制开发小程序费用大...

  小程序开发的出现解决了人们对于APP存在的部分不良体验,再加上小程序背靠微信这座“大山”,不管是流量还是用户上面都占据着先天的优势。微信小程序开发还具备不用...

  运营微信可能大多数人都觉得很简单,因为每个人都有自己的社交圈,利用这些社交圈去进行产品的推广应该很容易,但是一些尝试过用户就知道,仅仅是利用社交圈根本不行,...

根据国家网贷的规定,捷信是属于高利贷,对于超过国家规定的贷款利率部分是需要退还给用户的,那么捷信退利息是在哪里退?捷信办理退息是需要通过关注“聚投诉”微信公众号,按照公众号的提示进行操作并提交好有关贷款的证明资料之后,就会有捷信官方工作人员联系用户办理退息手续。需要注意的是,捷信退息退还的只是超出国家规定范围内的利息。捷信怎么退利息流程【1】首先借款人要准备借款证明、利息证...

民生信用卡额度的调整方法为:1、电脑登录民生银行客服官网,然后在页面点击“我的信用卡-我要调额”即可调整自己的信用卡额度;2、打开并登录民生的全民生活APP,然后在页面依次点击“精选-调额度”进行信用卡额度的调整。不同途径申请调整额度的审核结果是一样的,如果申请失败了可以过段时间再重新申请,期间保持信用卡按时还款不要逾期。民生信用卡额度为什么升不了?...

什么是支付手段?支付手段是指货币用于清偿债务、支付赋税、租金、工资等的职能。这一职能是为适应商品生产和商品交换发展的需要而发展起来的。由于商品生产和商品交换在时空上的差异,就产生了商品使用价值的让渡与商品价值的实现在时间上分离开来的客观必然性。某些商品消费者在需要购买时没有货币,只有到将来某一时间才有支付能力,同时,某些商品生产者又急需出售其商品,于是就产生了赊购赊销。支付手段是指在交易过程中交易...

TOP