javascript基础3尚学堂百战程序员_第1页
javascript基础3尚学堂百战程序员_第2页
javascript基础3尚学堂百战程序员_第3页
javascript基础3尚学堂百战程序员_第4页
javascript基础3尚学堂百战程序员_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

数组课程介绍课程大纲1.数组的概念2.数组的特点3.数组的调用4.数组的方法5.二维数组1.数组的概念 数组(array)是按照一定顺序排列的一组值,每个值都拥有自己的编号,编号从0开始。整个数组用方括号来表示。 语法:vararr=[item1,item2,item3]; 上述代码中的item1、item2和item3元素就构成一个数组。两端的方括号是数组的标志。因为数组元素编号从0开始,所以item1是数组的第0个元素。ps:item1、item2和item3是泛指,javascript中的数组元素可以是任何类型的数据。

vararr=[‘123’,123,true,null,undefined,{'name':'frank'}]; 这是数组么?2.数组的特点(1)数组的本质(2)数组的长度(3)数组的遍历(4)数组的空位(5)数组的'删除'(1)数组的本质 本质上,数组是对象类型的一种特殊表现形式。因此创建的时候我们可以使用new方式来创建。 varnameArr=newArray('LiLei','HanMeiMei','Poliy');//['LiLei','HanMeiMei','Poliy']typeof运算符会返回数组的类型是object。typeofnameArr//"object"(2)数组的长度 要讨论数组的长度问题就要搞清楚数组在内存中的存放方式。

前面我们说过,javascript中的数组元素可以是任何数据类型的。而在计算机中不同的数据类型数据是放在不同存储区的。举例来说:……内存字符串类型数据存储区数字类型数据存储区对象类型数据存储区 因此javascript中的数组元素是在内存中的存储位置不连续的。 但是我们又不能按照内存地址来访问数组元素,那样会造成编程过程中的灾难。所以为了解决这个问题,我们按照下标的方式来对数组元素进行标记。 所以我们计算数组长度的时候只需要计算数组元素的个数即可。总结:javascript数组在内存中的存储位置是不连续的,但是数组的下标是连续的。根据上述原理,javascript给数组提供了一个.length属性来计算数组长度。 语法:arr.length

varageArr=[18,24,30]; console.log(ageArr.length);//3length是一个可写属性。 如果设置length长度小于数组本身长度,那么多余元素舍弃。 如果设置length长度大于数组本身长度,那么缺少元素用空位补齐。 如果设置length长度不是合法数值,那么会报错Invalidarraylength varageArr=[18,24,30]; ageArr.length=2; console.log(ageArr.length);//2

console.log(ageArr);//[18,24]varageArr=[18,24,30];ageArr.length=-1;console.log(age.length);//UncaughtRangeError:Invalidarraylength(…) varageArr=[18]; ageArr.length=3; console.log(ageArr.length);//3 console.log(ageArr);//[18] console.log(ageArr[1]);//undefined(3)数组的遍历 如果想要连续访问数组中的每个元素,可以使用forin快速遍历。

varheroArr=['GreenJuPeople','BlackGuaFu','MetalXia']; for(varindexinheroArr){ console.log(heroArr[index]); }

GreenJuPeople BlackGuaFu MetalXiaps:需要引起注意的是,forin循环遍历数组的时候,for循环中的index表示的数组的下标。并不是表示数组元素!(4)数组的空位 当数组的某个位置是空元素,即两个逗号之间没有任何值,我们称该数组存在空位(hole)。

varcountryNameArr=['China','','Japan']; countryNameArr.length//3

有趣的是:如果最后一个元素后面有逗号,这种情况并不会产生空位。也就是说最后一个元素后面的逗号有和没有结果都是一样的。(当然这种写法并不推荐。)

varcountryName=['China','American','Japan',]; countryName.length//3(5)数组的'删除'

delete命令能够删除数组中的元素的值,从而形成空位。但是delete命令并不会影响length的属性。vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne'];deletegirlFriends[1];console.log(girlFriends.length);//3console.log(girlFriends);//["ZhangTianAi",2:"SomeOne"]ps:delete命令在使用的时候,是根据数组下标来对指定数组的值进行删除的。3.数组的调用 数组的调用实际上指的是数组元素的调用。数组元素通过【数组名+下标】的方式来进行访问。

vargirlFriends=['张天爱','李贞贤','SomeOne']; console.log('今天朕就选你侍寝吧,'+girlFriends[0]); console.log('张天爱:爱死你了皇上')

ps:数组元素一次只能访问一个,不能一次连续访问多个数组元素。4.数组的方法javascript为数组提供了很多方法,方便开发者更好的使用数组。

(1)isArray:判断是否为数组(2)valueOf:返回数组本身(3)toString:将数组以字符串的形式返回(4)push:向数组末尾追加数据,返回当前数组的长度(5)pop:删除数组最后一个元素(6)join:将数组转换为字符串,默认按逗号隔开(7)shift():在数组头部删除一个元素(8)unshift():在数组头部添加一个元素(9)reverse():数组反转(10)slice:数组截取(11)splice:数组截取,并且可以插入新的元素(改变原数组)(12)sort:排序(13)indexOf:索引(14)lastIndexOf:反序索引(1)isArray方法

isArray方法是数组提供的用来专门判断当前对象是否为数组的方法。如果是数组返回true,否则返回false。vararr=[];Array.isArray(arr);//true

vararr=newArray();varresult=Array.isArray(arr);//true

vararr=[1,2,3];varresult=Array.isArray(arr);//true

varresult=Array.isArray("anarray");document.write(result);//false并不是一个数组,而是一个字符串(2)valueOf方法

valueOf方法归属于Object对象类型,作用是返回指定对象的原始值。在数组中作用是返回数组本身。(其他用法这里暂时不提) 语法:arr.valueOf() vararray=["FrankenStein",true,12,-5];

document.writen(array.valueOf()===array);//trueps:JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的valueOf()方法的返回值和返回值类型均可能不同。(3)toString方法

toString方法能够把数组转换成字符串。 语法:arr.toString()

vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne'];

console.log(girlFriends.toString());//ZhangTianAi,LiuShiShi,SomeOneps:toString方法不止能转换数组,对于布尔值也能够转换。(4)push方法

push方法用于在数组的末端添加一个或多个元素,并返回添加后的数组的长度。 语法:arr.push(item)

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.push('someOne'));//4(5)pop方法

pop方法用于删除数组的最后一个元素,并返回删除的这个元素。 语法:arr.pop()

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.pop());//刘诗诗(6)join方法

join方法能够以给定的参数做分隔符,将所有的数组元素组成一个字符串。如果不提供参数,默认使用逗号分隔。 语法:arr.join(separator)

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.join());//张天爱李贞贤刘诗诗

console.log(girlFriends.join(','));//张天爱,李贞贤,刘诗诗(7)shift方法

shift方法用于删除数组中的第一个元素,并返回删除的这个元素。 语法:arr.shift()

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.shift());//张天爱 console.log(girlFriends);//['李贞贤','刘诗诗'](8)unshift方法

unshift方法用于在数组的第一个位置添加元素,并返回添加元素后新数组的长度。 语法:arr.unshift(item)

vargirlFriends=['李贞贤','刘诗诗'];

console.log(girlFriends.unshift('张天爱'));//3(9)reverse方法

reverse方法能够反序排列数组。 语法:arr.reverse()

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.reverse());//['刘诗诗','李贞贤','张天爱'](10)slice方法

slice方法作用是能够根据指定的【起始点】和【结束点】来对数组进行截取,并生成一个新数组。新数组的内容是从起始点下标开始的元素到结束点下标的元素,但是不包括结束点下标的元素本身。

语法:arr.slice(index1,index2);

vargirlFriends=['张天爱','李贞贤','刘诗诗'];

console.log(girlFriends.slice(1,2));//李贞贤上面代码的作用是,从数组下标1元素(李贞贤)开始截取,到数组下标2元素(刘诗诗)为止。但是不包括刘诗诗。ps:slice方法的参数可以是负值。-1代表最后一个元素,-2代表倒数第二个元素。

vargirlFriends=['ZhangTianAi','LiuShiShi','SomeOne']; console.log(girlFriends.slice(-2,-1));//LiuShiShipss:如果只写一个参数,则表示从当前坐标开始截取一直到最后一个元素。(11)splice方法

splice方法和slice方法很相似,但是splice功能更强大一些。 splice方法的作用是在指定下标处截取一定长度的元素,再插入一些新元素,并将删除的元素构成一个新数组返回。splice方法会改变原本数组。 语法:arr.splice(index,removeCount,addItem1,addItem2,…) varnumbers=[1,2,3,'a','b','c',7,8,9]; varnew1=numbers.splice(3,3,4,5,6); console.log(new1);//["a","b","c"] console.log(numbers);//[1,2,3,4,5,6,7,8,9] 上述代码中numbers.splice(3,3,4,5,6);的含义是,从数组下标为3的元素开始,删除3个元素,然后把4,5,6插入到原数组当中。ps:对于splice方法来说,有没有新元素不是必要的。(12)sort方法

sort方法用于对数组元素进行排序。默认按照编码方式进行排序(即不在括号里写任何内容),如果不希望按照默认方式排序,则需要自定义排序函数。 语法:arr.sort(sortby) vararr=[1,100,40,25,38]; console.log(arr.sort());//[1,100,25,38,40] 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 vararr=['Frank','arik','sophia']; console.log(arr.sort());//["Frank","arik","sophia"] 如果想按照其他标准进行排序,就需要提供比较函数functionsortNumber(a,b){returna-b>0}vararr=[100,4,25,33,18];document.write(arr+"<br/>")//[100,4,25,33,18]document.write(arr.sort(sortNumber))//[4,18,25,33,100](13)indexOf方法

indexOf方法能够从前到后检索数组,并返回元素在数组中的第一次出现的下标,如果没有索引到则返回-1。indexOf第二个参数表示从第几个元素开始索引,是可选参数。 语法:arr.indexOf(item,beginIndex)

varnumbers=[11,13,15,17,19,11];

console.log(numbers.indexOf(11));//0 console.log(numbers.indexOf(100));//-1ps:第二个参数可以是负值。如果是-1则表示从最后一个元素开始向后查找,这种写法我个人不推荐。 varnumbers=[11,13,15,17,19,11]; console.log(numbers.indexOf(11,-1));//5 console.log(numbers.indexOf(19,-1));//-1表

温馨提示

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

评论

0/150

提交评论