首页 »Javascript教程 » asp数组操作:JavaScript数组操作 »正文asp数组操作:JavaScript数组操作来源: 发布时间:星期四, 2009年2月12日 浏览:502次 评论:0
join(delimiter):把中各个元素使用分隔符(delimiter)拼成串 concat(.gif' />1,.gif' />2,...):合并对原不影响只是返回合并后新 pop:删除并返回最后个元素 push(element1,element2,...):在末尾追加元素 sht:删除并返回第个元素 unsht(element1,element2,...):在开始位置添加元素 reverse:将元素顺序首尾反转 sort(function):给排序 如果不给参数默认按排序(所有元素是数字也不会按数字排序) 参数必须是个类似function(a,b){}在中判断a,b大小a>b返回正数a<b返回负数a=b返回0 slice(start,end):返回个新将start开始到end结束(不包括end)的间元素复制到新中 splice(start,count,replaceElement1,replaceElement2,...):删除或者替换元素从start开始对count个元素进行删除或替换 如果提供replaceElement参数则进行替换否则进行删除操作被替换元素个数和replaceElements个数不必相等 返回个包含被删除或替换掉元素 判断是否思路方法 var.gif' />Var=[\"aaa\",\"bbb\",\"ccc\"]; varnonArrayVar={length:4,otherAttribute:\"attr\"}; document.write(.gif' />Var.constructorArray); document.write(\"<br/>\"); document.write(nonArrayVar.constructorArray);结果是true,false 有关转换 可以使用.slice.call或者Array.prototype.slice.call但是IE6,IE7下对DOM元素集合使用这个操作时会报错其它浏览器(Firefox,Opera,Safari)都正常 举例代码: (function{ //SupportedbyFirefox,IE6,IE7,Opera,Safari varargArray=.slice.call(arguments);//argumentsisnotan.gif' />, //.slice.callwillmakea.gif' />witharguments document.write(argArray.reverse.join(\"&\"));//result:www&2&1 document.write(\"<br/>\"); [Page] //SupportedbyFirefox,IE6,IE7,Opera,Safari var.gif' />Like={0:\"ccc\",1:1,2:\"eee\",3:8,length:4};//anobjectthatlookslikeanobject vartrueArray=.slice.call(.gif' />Like,2,.gif' />Like.length);//makea.gif' />with.gif' />Like trueArray.push(\"2008-02-12\"); document.write(trueArray.join(\"|\"));//result:eee|8|2008-02-12 document.write(\"<br/>\"); //SupportedbyFirefox,Opera,Safari varobj=document.createElement(\"ul\"); obj.innerHTML=’<li>AAAAAA</li><listyle=\"display:none;\">BBBBBB</li> <li>CCCCCC</li><li>DDDDDD</li>’; varnodeList=obj.getElementsByTagName(\"li\");//DOMElementcollections document.write(nodeList.length+\"linodefound!<br/>\"); varnodeArray=.slice.call(nodeList);//makea.gif' />withnodeList for(vari=0;i<nodeArray.length;i){ document.write(nodeArray[i].textContent||nodeArray[i].innerText); document.write(\"$\"); }//result:AAAAAA$BBBBBB$CCCCCC$DDDDDD$ })(1,2,\"www\"); grep、map Perl语言带出来东西jQuery里面就用了自己grep和map实现 grep 对grep操作指类似这样代码: ArrayArray=grep(condition,oldArray)这个操作将对oldArray每个元素进行遍历如果当前处理元素符合条件condition则加入到返回中 jQuery中grep类似这样:function(elems,callback)elems是DOM元素集合callback是实现selector些表达式如果callback返回true则表明当前处理元素符合selector表达式 map 和grep区别是map不进行条件判断只是对中每个元素执行指定操作就是将个循环过程进行改装 [Page] 喜欢动态语言风格可以给加个grep和map思路方法例如: Array.prototype.grep=function(condition,operation,inverse){ (arguments.length<1); vartester; (typeofcondition\"function\")tester=condition; (condition.constructorRegExp)tester=function(e,i){condition.test(e);}; (typeofcondition\"\") try{ tester=eval(\"false||function(e,i){\"+condition+\";}\"); }catch(e){ } tester=function(e,i){false;}; (!tester); varcommand; (typeofoperation\"function\")command=operation; (typeofoperation\"\") try{ command=eval(\"false||function(e,i){\"+operation+\";e;}\"); }catch(e){ } (typeofcommand!=\"function\")command=function(e,i){e;}; varresult=,match,t; for(vari=0;i<this.length;i){ match=tester(this[i],i); (match)t=command(this[i],i); (match&&!inverse&&t!=null)t.constructorArray?result.concat(t):result.push(t); (!match&&inverse)result.push(this[i]); [Page] } result; }; Array.prototype.map=function(callback){ (!callback||typeofcallback!=\"function\")this; for(vari=0;i<this.length;i)callback(this[i],i); this; };使用举例: varoldArray=[2,7,8,5,1,9,2,6,0]; varArray1=oldArray.grep(\"i%20\");//elementswithevenindex varArray2=oldArray.grep(\"e%21\");//elementswithoddvalue document.write(Array1+\"<br/>\");//result:2,8,1,2,0 document.write(Array2+\"<br/>\");//result:7,5,1,9 oldArray=[\"aa\",\"bbbb\",\"abcdefg\",\"ccccc\",\"111121111\",\"999999999\"]; varArray3=oldArray.grep(/(\\w)\\1{4,}/); document.write(Array3+\"<br/>\");//result:ccccc,999999999典型jQuery风格代码: varobj=document.createElement(\"ul\"); obj.innerHTML=’<li>AAAAAA</li><listyle=\"display:none;\">BBBBBB</li> <li>CCCCCC</li><li>DDDDDD</li>’; document.body.appendChild(obj); window.Interval(function{ //makeaa.gif' />withDOMElementcollection varliList=obj.getElementsByTagName(\"li\"); varliArray=; for(vari=0;i<liList.length;i)liArray.push(liList[i]); //grepfor.gif' />sexample liArray .grep(’e.style[\"display\"]\"none\"’,’e.style[\"display\"]=\"\";’,true) .map(function(e,i){e.style[\"display\"]=\"none\";}); },1500); 2
相关文章读者评论发表评论 |