Dojo   发布时间:2022-04-21  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Dojo Api 之 Array处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Dojo内置了很多Array处理的@L_607_0@,具体有:dojo.forEach、dojo.map、dojo@L_612_1@me、dojo.every、dojo.filter、dojo.indexOf、dojo.lasTindexOf. 另外还有NodeList相关的@L_607_0@(下篇学习):NodeList.indexOf,NodeList.lasTindexOf,NodeList.forEach,NodeList.every,NodeList@L_612_1@me,NodeList.concat,NodeList.map,NodeList.filter,NodeList.at。

dojo.forEach:顾名思义,就是对Array里的每个元素依次进行特定的操作,这个操作也叫做回调函数

形式如下:dojo.forEach(items,function(item,i,refItems){// do something});

其中,items就是想要进行处理的Array变量,forEach的第二个参数是一个匿名函数,forEach会传三个参数进去,参数名可以自定,item是每次进行处理的Array中的一个元素;i是正在处理的这个元素的index;refItems是items的一个引用,如果在匿名函数里使用这个引用的话,需要注意的是,改变这个引用的话,items也会被改变。

按照官网上的说法,如果仅仅是这样简单的循环的话,那它就不值得人兴奋了。如果配合其他dojo的function进行使用的话,特别是dojo.query@L_607_0@,那forEach就变得不一般了,看下面这个例子:

dojo.forEach(dojo.query("SELEct"),function(SELEctTag){SELEctTag.disabled = truE});

这句代码会把两个页面内的选择框都设置为无效。不需要跟dom api打交道,也不需要使用令人烦躁的id和name,简单有效。

一般来说,在dojo.query的结果上进行forEach的调用更符合人的理解方式,于是dojo也提供了这样一种更有逻辑性的调用@L_607_0@:

dojo.query("SELEct").forEach(function(SELEctTag){SELEctTag.disabled = truE});

从1.0版本开始,达到上面代码同样效果有了更新潮的写法,可以完全抛开匿名的function:

dojo.query("SELEct").forEach("item.disabled = true");

惟一有所限制的是必须使用item这个名字进行操作。

dojo.map:用法与dojo.forEach类似,设置一个回调函数,然后对每个Array元素调用这个函数。不同之处有两点:

1. dojo.map会返回一个处理后的Array;

2. dojo.map的回调函数需要返回一个值,作为dojo.map返回的Array中的一个元素。

为JavaScript中的对象都是引用,所以如果对原始的Array中的元素进行修改了的话,那原始Array也将会被修改(但ms在新版本dojo中已经修正了这个问题,然不知道是哪个版本开始的。)但保险起见,可以使用dojo.clone@L_607_0@复制出一个新的Array进行操作,以达到保护原始Array类的作用。

dojo@L_612_1@me:这个函数理解起来很容易, 它设定一个回调函数,对Array中的元素进行判断,如果有返回true的元素,dojo@L_612_1@me就返回true,否则就返回false。

dojo.every:与dojo@L_612_1@me类似,不同的是回调函数对每个元素都返回true的时候,dojo.every才会返回true,否则返回false。

dojo.filter:用于Array元素的过滤,返回值为过滤后的Array,里面包含的元素是回调函数返回值为true的元素。

dojo.indexOf:返回元素在Array中的index值,如果没有这个元素的话就返回-1。如:dojo.indexOf(array,element)。如果Array中有两个元素相等,则返回先找到的那个元素的index。

dojo.lasTindexOf:同dojo.indexOf,不过返回的是找到的最后一个元素的index值。如果有三个元素相等,那就没办法了!!!

大佬总结

以上是大佬教程为你收集整理的Dojo Api 之 Array处理全部内容,希望文章能够帮你解决Dojo Api 之 Array处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。