Javascript数组及其操作.doc_第1页
Javascript数组及其操作.doc_第2页
Javascript数组及其操作.doc_第3页
Javascript数组及其操作.doc_第4页
Javascript数组及其操作.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Javascript数组及其操作1.如何创建数组2.如何对数组进行操作(添加,删除,读取)3.数组常见方法和属性如何创建一个数组,一般地根据初始化设定简单分为3种:1.单纯创建数组:var arr=new Array();要点:用new关键字创建数组对象Array(),Array()对象是一个本地类,可以用new创建一个对象后使用2.创建数组的同时规定数组大小:var arr=new Array(10);/这里就创建了一个初始化大小为10的数组注意:当使用数组大小操作初始化大小时,数组会自动被撑大,不会像C语言那样发生错误.动态增长是js数组的一个性质.另外,js中支持最大数组长度为42949672953.直接初始化:var arr=new Array(love,hate,pain);/这里就直接初始化了数组或var arr=happy,cute,scare;/括号也可以声明一个数组对象当然,类似C语言,可以定义2维3维和多维的数组,例如: var myArray = new Array(); for(var i=0;i10;i+ ). myArrayi=new Array(); myArrayi0=Math.floor(Math.random()*10); myArrayi1=Math.floor(Math.random()*10); myArrayi2=Math.floor(Math.random()*10); myArrayi3=Math.floor(Math.random()*10); myArrayi4=Math.floor(Math.random()*10); myArrayi5=Math.floor(Math.random()*10); myArrayi6=Math.floor(Math.random()*10); myArrayi7=Math.floor(Math.random()*10); myArrayi8=Math.floor(Math.random()*10); myArray.sort( function(x, y) . return (x0=y0)?(x4=y4)?(x8-y8):(x4-y4):(x2-y2) ); for(var i=0;imyArray.length;i+ ). document.write(myArrayi.join(,) + ); 数组的属性:lengtharr.length返回数组arr的长度,常见于循环中对数组的遍历,比如:for(var i=0;ib返回正数,ab返回负数,a=b返回0slice(start, end): 返回一个新的数组,将start开始,到end结束(不包括end)之间的元素复制到新数组中splice(start, count, replaceElement1, replaceElement2, .): 删除或者替换数组元素,从start开始,对count个元素进行删除或替换 如果提供replaceElement参数则进行替换,否则进行删除操作,被替换的元素个数和replaceElements的个数不必相等 返回一个数组,包含被删除或替换掉的元素判断是否数组的方法var arrayVar = aaa, bbb, ccc;var nonArrayVar = length:4, otherAttribute:attr ;document.write(arrayVar.constructor=Array);document.write();document.write(nonArrayVar.constructor=Array);结果是true, falsegrep、mapPerl语言带出来的东西,jQuery实现selector时用了这种方式grep对数组的grep操作,指类似这样的代码:Array newArray = grep(condition, oldArray),这个操作将对oldArray数组的每个元素进行遍历,如果当前处理元素符合条件condition,则加入到返回数组中jQuery中的grep类似这样: function( elems, callback),elems是DOM元素集合,callback是实现selector的一些表达式函数,如果callback返回true则表明当前处理的元素符合selector表达式map与grep不同的是,map不进行条件判断,只是对数组中每个元素执行指定的操作,就是将一个循环过程进行改装喜欢动态语言风格的,可以给数组加个grep和map方法,例如:Atotype.grep = function(condition, operation, inverse) if(arguments.length1) return ; var tester; if( typeof condition=function ) tester=condition; else if( condition.constructor=RegExp ) tester = function(e, i) return condition.test(e); ; else if( typeof condition=string ) try tester = eval_r( false|function(e, i) return + condition + ; ); catch(e) else tester = function(e, i) return false; ; if(!tester) return ; var command; if( typeof operation=function ) command=operation; else if(typeof operation=string) try command = eval_r( false|function(e, i) + operation + ; return e; ); catch(e) if(typeof command!=function) command=function(e, i) return e; ; var result = , match, t; for(var i=0; ithis.length; i+) match = tester(thisi, i); if(match) t = command(thisi, i); if(match & !inverse & t!=null) t.constructor=Array ? result.concat(t) : result.push(t); else if(!match & inverse) result.push(thisi); return result;Atotype.map = function(callback) if(!callback | typeof callback!=function) return this; for(var i=0; ithis.length; i+) callback( thisi, i); return this;使用示例:var oldArray = 2, 7, 8, 5, 1, 9, 2, 6, 0 ;var newArray1 = oldArray.grep(i%2=0); /返回索引为偶数的所有元素var newArray2 = oldArray.grep(e%2=1); /返回数组元素的值为奇数的所有元素document.write(newArray1 + ); /2,8,1,2,0document.write(newArray2 + ); /7,5,1,9oldArray = aa, bbbb, abcdefg, ccccc, 111121111, 999999999 ;var newArray3 = oldArray.grep(/(w)14,/);document.write(newArray3 + ); /ccccc,999999999典型jQuery风格的代码:var obj = document.createElement_x(ul);obj.innerHTML = AAAAAA BBBBBB CCCCCC DDDDDD;document.body.appendChild(obj);window.setInterval(function() /把NodeList转换成数组 var liList = obj.getElementsByTagName_r(li); var liArr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论