前端入门教程JavaScriptArray(数组)对象
JavaScript数组用于在单一变量中存储多个值。实例varcars〔Saab,Volvo,BMW〕;什么是数组?
数组是一种特殊的变量,它能够一次存放一个以上的值。
如果您有一个项目清单(例如,汽车品牌列表),在单个变量中存储汽车品牌应该是这样的:varcar1Saab;varcar2Volvo;varcar3BMW;
不过,假如您希望遍历所有汽车并找到一个特定的值?假如不是三个汽车品牌而是三百个呢?
解决方法就是数组!
数组可以用一个单一的名称存放很多值,并且还可以通过引用索引号来访问这些值。创建数组
使用数组文本是创建JavaScript数组最简单的方法。语法:vararrayname〔item1,item2,。。。〕;实例varcars〔Saab,Volvo,BMW〕;
空格和折行并不重要。声明可横跨多行:实例varcars〔Saab,Volvo,BMW〕;
请不要最后一个元素之后写逗号(比如BMW,)。
可能存在跨浏览器兼容性问题。使用JavaScript关键词new
下面的例子也会创建数组,并为其赋值:实例varcarsnewArray(Saab,Volvo,BMW);
以上两个例子效果完全一样。无需使用newArray()。
出于简洁、可读性和执行速度的考虑,请使用第一种方法(数组文本方法)。访问数组元素
我们通过引用索引号(下标号)来引用某个数组元素。
这条语句访问cars中的首个元素的值:varnamecars〔0〕;
这条语句修改cars中的首个元素:cars〔0〕Opel;实例varcars〔Saab,Volvo,BMW〕;document。getElementById(demo)。innerHTMLcars〔0〕;
〔0〕是数组中的第一个元素。〔1〕是第二个。数组索引从0开始。改变数组元素
这条语句修改了cars中第一个元素的值:cars〔0〕Opel;实例varcars〔Saab,Volvo,BMW〕;cars〔0〕Opel;document。getElementById(demo)。innerHTMLcars〔0〕;访问完整数组
通过JavaScript,可通过引用数组名来访问完整数组:实例varcars〔Saab,Volvo,BMW〕;document。getElementById(demo)。innerHTMLcars;数组是对象
数组是一种特殊类型的对象。在JavaScript中对数组使用typeof运算符会返回object。
但是,JavaScript数组最好以数组来描述。
数组使用数字来访问其元素。在本例中,person〔0〕返回Bill:数组:varperson〔Bill,Gates,62〕;
对象使用名称来访问其成员。在本例中,person。firstName返回Bill:对象:varperson{firstName:Bill,lastName:Gates,age:19};数组元素可以是对象
JavaScript变量可以是对象。数组是特殊类型的对象。
正因如此,您可以在相同数组中存放不同类型的变量。
您可以在数组保存对象。您可以在数组中保存函数。你甚至可以在数组中保存数组:myArray〔0〕Date。now;myArray〔1〕myFunction;myArray〔2〕myCars;数组属性和方法
JavaScript数组的真实力量隐藏在数组的属性和方法中:实例varxcars。length;length属性返回元素的数量varycars。sort();sort()方法对数组进行排序
我们将在下一章学习数组方法。length属性
length属性返回数组的长度(数组元素的数目)。实例varfruits〔Banana,Orange,Apple,Mango〕;fruits。length;fruits的长度是4
length属性始终大于最高数组索引(下标)。访问第一个数组元素实例fruits〔Banana,Orange,Apple,Mango〕;varfirstfruits〔0〕;访问最后一个数组元素实例fruits〔Banana,Orange,Apple,Mango〕;varlastfruits〔fruits。length1〕;遍历数组元素
遍历数组的最安全方法是使用for循环:实例varfruits,text,fLen,i;fruits〔Banana,Orange,Apple,Mango〕;fLenfruits。length;textul;for(i0;ifLen;i){textlifruits〔i〕li;}
您也可以使用Array。foreach()函数:实例varfruits,text;fruits〔Banana,Orange,Apple,Mango〕;textul;fruits。forEach(myFunction);textul;functionmyFunction(value){textlivalueli;}添加数组元素
向数组添加新元素的最佳方法是使用push()方法:实例varfruits〔Banana,Orange,Apple,Mango〕;fruits。push(Lemon);向fruits添加一个新元素(Lemon)
也可以使用length属性向数组添加新元素:实例varfruits〔Banana,Orange,Apple,Mango〕;fruits〔fruits。length〕Lemon;向fruits添加一个新元素(Lemon)警告!
添加最高索引的元素可在数组中创建未定义的洞:实例varfruits〔Banana,Orange,Apple,Mango〕;fruits〔6〕Lemon;向fruits添加一个新元素(Lemon)关联数组
很多编程元素支持命名索引的数组。
具有命名索引的数组被称为关联数组(或散列)。
JavaScript不支持命名索引的数组。
在JavaScript中,数组只能使用数字索引。实例varperson〔〕;person〔0〕Bill;person〔1〕Gates;person〔2〕62;varxperson。length;person。length返回3varyperson〔0〕;person〔0〕返回Bill警告!
假如您使用命名索引,JavaScript会把数组重定义为标准对象。
之后,所有数组的方法和属性将产生非正确结果。实例:varperson〔〕;person〔firstName〕Bill;person〔lastName〕Gates;person〔age〕62;varxperson。length;person。length将返回0varyperson〔0〕;person〔0〕将返回undefined数组和对象的区别
在JavaScript中,数组使用数字索引。
在JavaScript中,对象使用命名索引。
数组是特殊类型的对象,具有数字索引。何时使用数组,何时使用对象?JavaScript不支持关联数组如果希望元素名为字符串(文本)则应该使用对象。如果希望元素名为数字则应该使用数组。避免newArray()
没有必要使用JavaScript的内建数组构造器newArray()。
请使用〔〕取而代之!
下面两条不同的语句创建了名为points的新的空数组:varpointsnewArray();差varpoints〔〕;优
下面两条不同的语句创建包含六个数字的新数组:varpointsnewArray(40,100,1,5,25,10);差varpoints〔40,100,1,5,25,10〕;优
new关键词只会使代码复杂化。它还会产生某些不可预期的结果:varpointsnewArray(40,100);创建包含两个元素的数组(40和100)
假如删除其中一个元素会怎么样?varpointsnewArray(40);创建包含40个未定义元素的数组!!!如何识别数组
常见的问题是:我如何知晓某个变量是否是数组?
问题在于JavaScript运算符typeof返回object:varfruits〔Banana,Orange,Apple,Mango〕;typeoffruits;返回object
typeof运算符返回object,因为JavaScript数组属于对象。解决方案1:
为了解决这个问题,ECMAScript5定义了新方法Array。isArray():Array。isArray(fruits);返回true
此方案的问题在于ECMAScript5不支持老的浏览器。解决方案2:
创建您自己的isArray()函数以解决此问题:functionisArray(x){returnx。constructor。toString()。indexOf(Array)1;}
假如参数为数组,则上面的函数始终返回true。
或者更准确的解释是:假如对象原型包含单词Array则返回true。解决方案3:
假如对象由给定的构造器创建,则instanceof运算符返回true:varfruits〔Banana,Orange,Apple,Mango〕;fruitsinstanceofArray返回true
实例创建数组
创建数组,为其赋值,然后输出这些值。htmlbodybodyhtmlFor。。。In声明
使用for。。。in声明来循环输出数组中的元素。htmlbodybodyhtml合并两个数组concat()
如何使用concat()方法来合并两个数组。htmlbodybodyhtml用数组的元素组成字符串join()
如何使用join()方法将数组的所有元素组成一个字符串。htmlbodybodyhtml文字数组sort()
如何使用sort()方法从字面上对数组进行排序。htmlbodybodyhtml数字数组sort()
如何使用sort()方法从数值上对数组进行排序。htmlbodybodyhtml定义数组
数组对象用来在单独的变量名中存储一系列的值。
我们使用关键词new来创建数组对象。下面的代码定义了一个名为myArray的数组对象:varmyArraynewArray()
有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。1:varmycarsnewArray()mycars〔0〕Saabmycars〔1〕Volvomycars〔2〕BMW
也可以使用一个整数自变量来控制数组的容量:varmycarsnewArray(3)mycars〔0〕Saabmycars〔1〕Volvomycars〔2〕BMW2:varmycarsnewArray(Saab,Volvo,BMW)
注意:如果你需要在数组内指定数值或者逻辑值,那么变量类型应该是数值变量或者布尔变量,而不是字符变量。访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
下面是代码行:document。write(mycars〔0〕)
下面是输出:Saab修改已有数组中的值
如需修改已有数组中的值,只要向指定下标号添加一个新值即可:mycars〔0〕Opel;
现在,以上代码:document。write(mycars〔0〕);
将输出:Opel
我建了一个【前端学习群】,【免费领取学习资料】或学习的同学可以关注我:
前端学习交流知乎
外研版九年级英语词组专辑Module112module11。haveameeting开会2。listenup注意听3。getoutof从内出来;离开4。replytosth。sb。答复某事某人5……
第三节ampnbsp光合作用第三节光合作用一、素质教育目标(一)知识教学点1了解叶绿体中色素的种类及作用、光合作用的实质和意义。2理解光合作用的概念、总反应式。3掌握光合作用……
七年级语文黄河颂的教学反思重视情感、态度、价值观的引导。本文是一首抒情性很强的诗歌。调动学生的情感体验。激发学生热爱黄河、保护母亲河的情感音乐电视的情境。教师饱含感情的诵读感染,学生自由诵读的情感体验无……
课文难忘的一天教学设计模板一、欣赏歌曲创设情境首先,请同学们欣赏一首歌曲《春天的故事》,会唱的同学可以跟唱。(通过大屏幕,播放VCD《春天的故事》)二、认识人物导入新课1、歌曲《春天的……
咸阳城西楼晚眺古诗阅读答案咸阳城西楼晚眺许浑一上高城万里愁,蒹葭杨柳似汀洲。溪云初起日沉阁,山雨欲来风满楼。鸟下绿芜秦苑夕,蝉鸣黄叶汉宫秋。行人莫问当年事,故国东来渭水流。……
幼儿园社会教案我快乐活动目标1、学习快乐,尝试在不快乐的情况下,试图让自己快乐。2、通过讨论、记录等方式,找寻让自己快乐的方法。3、了解心情愉快对身心健康的重要性。活动准备……
有关乘法估算的教学反思《乘法估算》四年级上册内容,我在按计划上完这一节后,反思整个教学过程,成功的关健在于打破了传统的教学模式,完全采用了学生身边的生活素材,让学生自主提出问题和学生与学生、学生与老……
连篇累牍怎么造句1、长期以来,澳大利亚的历史学家、文学家常常连篇累牍地讨论该国的文化传统和文学传统,虽然定义颇多,往往莫衷一是,但是都包含着文化遗产中的社会态度。2、经理看了看说:只须几……
怎么用急如星火造句1、他于是将孩子打哭了,他们便急如星火地离开了这座城。2、这件事上头急如星火催得很紧,大家再加把劲,尽快赶出来吧!3、雷达发现敌机踪影,我军飞机急如星火升空拦截。……
小松文言文阅读训练含答案《小松》【唐】杜荀鹤自小刺头深草里,而今渐觉出蓬蒿。时人不识凌云木,直待凌云始道高。15。诗中刺一字千钧,请分析它的妙处。(2分)答:16。……
实施拓展性教学提高学生说用英语的能力2AUnit8amplt各位领导、老师,下午好!首先,感谢胡老师和姜老师为我们大华小学的黄瑛老师提供了这样一个展示的机会,也给了我一次锻炼的机会。同时,我们也要感谢长江路小学的小朋友们的积极配合……
重力教学目标知识目标1、认识产生的条件,2、知道的三要素:理解重心的概念3、会计算的大小能力目标1、通过本节课的学习,会分析各个物体的重心……
小班健康活动睡觉要有好习惯活动目标1通过比较,分清哪些是睡觉的好习惯。2逐步建立良好的生活习惯。活动准备:1。幼儿睡觉的各种姿势图片。2。小床一张。3。幼儿围坐成半圆形。活动过程:一、教师提问,引出陪睡……
动物的卵课文教学反思范文春天不只是植物的,春天也属于动物。由植物的繁衍联系到动物的繁殖,由植物的种子联系到动物的卵,这也是对动物新学生命研究的引入。本课的重点是通过对动物卵的研究,让学生注意到植……
对不良诱惑说不的说课稿各位评委,各位同仁,你们好!我是21号参赛选手,今天我的说课题目是《对不良诱惑说不》。我将从教材与课程标准、学情分析、教法与学法、教学过程、效果预测六个方面进行具体阐述。……
荷花的课文教学设计【教学要求】1、正确、流利、有感情地朗读,背诵课文。2、学会本课10个生字,理解由生字组成的词语。3、知道作者中按照先总述,后分述的方式描写白荷花的各种……
游漓江教学设计范文一、导入新课人们都说桂林山水甲天下,那就让我们一齐随着作者去游一游漓江吧!二、自读课文,了解大意,理清描写的顺序学生默读课文,通过、词典和联系上下文,理解词语……
幼教大班美术教案认识球体认识球体活动目标1通过观察比较,在操作活动中认识球体的主要特征。2在活动中让幼儿自己说出、找出与球体相似的物体。3培养幼儿的探索精神和动手操作能力。……
溺水安全教育教案一、谈话引入课题生命安全高于天,父母给你的生命只有一次,所以每个人都要珍惜生命,注意安全。二、授新课1。游泳中要注意的安全问题:组织学生观看安全教育专题……
幼儿园小班千字文教案《千字文》问世1400多年来的历史表明,它既是一部优秀的童蒙读物,也是中国优秀传统文化的一个组成部分,得到了人们的普遍重视和喜爱。接下来是小编为您整理的幼儿园小班千字文教案,希……
拓墣产业研究院发布全球IC设计公司2019第三季度营收排名来源:TechWeb。com。cn作者:行者崟涛【TechWeb】据中证网报道,集邦咨询旗下拓墣产业研究院4日发布了全球前十大IC设计公司(仅统计公开财报的公司)2019……
伏尔加船夫曲教学反思《伏尔加船夫曲》是一首流传很广的俄罗斯民歌,他速度徐慢,旋律朴实。能运用音乐的力度术语来体现船夫们迈着沉重的步伐拉纤的劳动场面。歌中有一在重复的劳动号子。从感觉上能体现伏尔加河……
黄山奇石教学实录一万州区沙河小学隆泽琼一、揭示课题,初读课文师:我们伟大祖国历史悠久,山青水秀,无数名山大川像一颗颗珍珠撒落在祖国土地上;景色绮丽的杭州西湖,水花飞溅、气势磅礴的黄果……
说明文阅读指导知识要点:说明文阅读的内容主要有:说明文的对象、特征、方法、顺序、结构和语言等,具体要点如下:一、为了说明事物特征或说明事理,需要采用恰当的说明方法。常见的说……