当前位置:首页 > 日记 > 正文

Javascript数组的详细解决方案

Javascript数组的详细解决方案
ECMAscript的数组是从其他语言中的数组不同。虽然ECMAscript阵也是一个有序的列表,它可以保存任何类型的每一项的数组数据,ECMAscript数组的大小可以动态调整。

创建数组有两种基本方法:第一种是使用数组构造函数,如下所示:

复制代码代码如下所示:

新数组();
如果知道数组要保存的项的数量,也可以传递构造函数参数,参数将自动成为长度属性的值,如下所示:

复制代码代码如下所示:

新数组(20);
您还可以传递一个数组中应该包含的项数组,如下面的代码所示:

复制代码代码如下所示:

新数组(红色)
此外,当使用数组构造函数时,可以省略新操作符,如下所示:

复制代码代码如下所示:

var颜色=数组(20);
创建数组的第二种方法是使用数组文字表示。数组文字由一对方括号表示,其中包含一个数组项,由多个数组项之间的逗号分隔,如下所示。

复制代码代码如下所示:

红色

变量名{ };

VaR值= {1,2,} / / IE8和前3项,其他2项,不推荐使用
与对象一样,当使用数字文字表示时,数组构造函数也不会被调用。

在读取和设置数组的值时,使用一个基于0的索引使用方括号,并提供相应的值,如下所示:

复制代码代码如下所示:

颜色红色

警报(颜色{ 0 });

颜色{ 1 } 黑色

颜色{ 2 } 棕色第三
长度属性中数组中存储的项数,这个属性总是返回0个或更多个数字,如下所示:

复制代码代码如下所示:

颜色红色

变量名{ };

警报(颜色,长度); / 3

警报(名称,长度)0
值得注意的是,数组的长度值是不read-only.so,通过设置这个值,你可以从数组的末尾删除项目或将项目添加到数组,如下:

复制代码代码如下所示:

var颜色= 红色

colors.length = 1;

警报(颜色{ 1 });
使用长度属性也可以很容易地将数据添加到数组的结尾。

复制代码代码如下所示:

var颜色= 红色

颜色{颜色长度为黑色;添加位置2

颜色{颜色长度为棕色添加位置3
1。探测阵列

一个网页或全球范围,instanceof运算符可以做到:

复制代码代码如下所示:

如果(值是数组){

操作

}
在全球范围内的instanceof说谎的局限性,如果一个网页包含多个框架,有两个以上的全局执行环境。为了解决这个问题,ecmascript5加入Array.isArray()方法,它是用如下:

复制代码代码如下所示:

如果(Array.isArray(值)){

操作

}
2,变换法

toString()方法调用返回一个逗号分隔的字符串数组,通过数组中的每个值的字符串连接。叫()返回值或数组,如下所示:

复制代码代码如下所示:

VaR的颜色= {红','蓝色'、‘绿色'};

警报(colors.tostring()); / /红色,蓝色,绿色

警报(colors.valueof()); / /红色,蓝色,绿色

警报(颜色)红色、蓝色、绿色
的tolocalstring()(),(),和价值tistring()方法继承了数组将在默认情况下一个逗号分隔符的形式返回一个数组项。如果加入()方法使用不同的分隔符,可以用来构建字符串,加入()方法接受只有一个参数,即一个字符串作为分隔符,如下图所示:

复制代码代码如下所示:

VaR的颜色= {红','蓝色'、‘绿色'};

警报(colors.join(',')); / /红色,蓝色,绿色

警报(colors.join(' | ')); / /红蓝绿| |
如果数组中的一个项目是零或undefied,那么价值是通过在加入空字符串表示(),(),tolocalstring tistring()和()方法的价值。

3、堆栈法

Javascript专门为数组提供推()和POP()操作,以便实现类似堆栈的行为。

推()方法可以接收任意数量的参数,将它们一个接一个地添加到数组的结尾,并返回修改后的数组的长度。

复制代码代码如下所示:

var颜色=新的(数组);定义数组

VaR计算= colors.push(红

警报(计数);2

数= colors.push(黑 / /出版社);在另一个

警报(计数);3

var = colors.pop(项); / /流行上

警报(项目)

警报(颜色,长度); / 2
4。队列的方法

堆栈数据结构的访问规则是后进先出(前先出),和队列访问规则FIFO(先进先出)。队列在列表的尾部添加项目和移动项目的前端。

移位()方法可以删除数组中的第一个项目,项目回报,该数组的length-1。结合推()和移位()方法,你可以使用一个数组就像一个队列,如下图所示:

复制代码代码如下所示:

新数组();

VaR计算= colors.push(红

数= colors.push(黑);

警戒(计数);

var = colors.shift(项); / /第一

警报(项目)

警报(颜色,长度); / 2
ECMAscript提供unshift()的阵列的方法。unshift()和()方法使用转向相反:它增加了阵列的前端任意一项并返回新数组的长度。因此,使用unshift()和()的转变的同时,我们可以模拟队列从相反的方向,即增加新的项目在前面的数组和数组的末尾删除项目。

复制代码代码如下所示:

新数组();

VaR计算= colors.push(红

警报(计数);2

数= colors.unshift(黑); / /到另一个

警报(计数);3

var = colors.pop(项); / /得到的最后一个

警报(项目)绿色

警报(颜色,长度)2
5。排序方法

有两种方法可以直接用于数组中的重新排序:反向()和排序()。反向()方法由反向数组项排序。

复制代码代码如下所示:

var值{ 2, 1, 3,4, 5 };

values.reverse();

警报(值); / / 5,4,3,2,1
默认情况下,排序()方法调用toString()的顺序每个项目的方法,并对字符串进行比较来确定如何排序。即使在一个数组中每一项都是一个数值,排序()方法是一个字符串。

复制代码代码如下所示:

var值{ 12, 11, 3,4, 5 };

values.sort();

警报(值); / / 12,11,3,4,5
我们可以传递一个比较函数作为参数来排序()方法:

复制代码代码如下所示:

(value1,value2功能比较){

如果(value1 value2 P<0.05){

返回1

} else if(value1 value2 { >)

返回1

{人}

返回0

}

}

var值{ 0, 1, 5,10, 15 };

values.sort(比较);

警报(值); / / 0,1,5,10,15
6。操作方法

ECMAscript提供许多方法在数组操作。在此,Concat()方法可以创建一个基于当前数组中的所有项目的新阵列。

复制代码代码如下所示:

var颜色= 红色

无功colors2 = colors.concat(黄),{黑色

警报(颜色);红色、绿色、蓝色

警报(colors2); / /红色,绿色,蓝色,黄色,黑色,棕色
切片()方法可以创建一个基于一项或多项当前数组的数组,它可以接收一个或两个参数,即返回的起始和结束位置的项目。当一个参数是一个参数,返回指定位置参数的所有物品的当前数组的结尾。两参数返回的所有项目开始到指定的位置不包括项目结束。注意滑动()方法不影响原数组。

复制代码代码如下所示:

var颜色= 红色

无功colors2 = colors.slice(1);

无功colors3 = colors.slice(1,4);

警报(colors2); / /绿色,蓝色,黑色,棕色

警报(colors3); / /绿、蓝、布莱克
删除方法:可以删除任意数量的项,2个参数只删除第一个位置和删除项。

(切片)方法:插入可以插入任意数量的项到指定位置,3个参数:起始位置,只需要提供0(要删除的项数)和插入项。

(滑动)法可以代替:指定项插入任意数量的项目,和任何数量的物品也删除3个参数只需要指定起始位置,被删除和插入任意数量的项目,项目数。

复制代码代码如下所示:

var颜色= 红色

删除

var删除= colors.slice(0, 1); / /删除第一

无功colors3 = colors.slice(1, 4);

警报(颜色)

警报(已删除);

插入

删除= colors.slice(1, 0,黄

警告(颜色);绿色、黄色、橙色、蓝色

警报(已删除);空数组

替换

删除= colors.slice(1, 1,红

警报(颜色);绿色,红色

警报(已删除);
7,位置法

ecmascript5为阵列两定位方法:()和()返回字符串。两种方法接受两个参数:要看项目和代表的起点位置的索引(可选)。indexOf()方法从数组和字符串的开始,()方法开始期待从数组的末尾。

这两种方法都返回在数组中找到的项的位置,并返回到1而不找到它们。

复制代码代码如下所示:

var = { 1, 2, 3,4, 5, 4,3, 2, 1 };

警报(numbers.indexof(4)) / / 3

警报(numbers.lastindexof(4)) / / 5

警报(numbers.indexof(4, 4)) / / 5

警报(numbers.lastindexof(4, 4)) / / 3
8,迭代法

ecmascript5定义了5个迭代方法的阵列,每个方法接受两个参数,第一个是一个迭代函数,第二是函数{可选范围对象}。

迭代函数接受三个参数。第一个是数组中要迭代的元素的值,第二个是数组中总是迭代的元素的位置,第三个是迭代数组本身。

1。每个()为数组中的每一项运行一个给定函数,如果函数返回每个项的true,则返回true。

2。筛选器()为数组中的每个项运行一个给定函数,并返回一个函数返回一个真正项的数组。

三.foreach()运行一个给定的每项功能的阵列。此方法不返回值4。map(),它为数组中的每个函数返回一组数组。

5。一些()为数组中的每个项运行一个给定函数,如果函数返回到任何项,返回true。

浏览器支持这些迭代方法,IE9 +,Firefox2 +,safari3 +,Opera 9.5 +,铬

在这些方法中,最相似的是每()和一些(),这是用来查询是否在数组中满足条件的一项。每(),传入的函数必须返回到真实的每一个项目,这个方法返回true;否则,他返回FALSE。一些()方法返回true只要输入的函数返回一个数组中的项。

复制代码代码如下所示:

VaR Num = { 1,2,3,4,5,6,7,8,9 };

无功everyresult = num.every(功能(项目、指标、阵列){

如果(项目> 2){

返回true;

}

});

警报(everyresult); / /假

无功someresult = num.some(功能(项目){)

如果(项目> 2){

返回true;

}

});

警报(someresult); / /真的
筛选器()使用指定的函数确定返回数组中是否包含某个项。

复制代码代码如下所示:

VaR Num = { 1,2,3,4,5,4,3,2,1 };

无功filterresult = num.filter(功能(项目){)

如果(项目> 2){

返回true;

}

});

警报(filterresult); / / { 3,4,5,4,3 }
map()返回一个数组,每个数组在原始数组的相应项上运行传入函数的结果。

复制代码代码如下所示:

VaR Num = { 1,2,3,4,5,4,3,2,1 };

无功mapresult = num.map(功能(项目){)

如果(项目> 2){

返回true;

}

}); / / { 2,3,6,8,10,8,6,4,2 }
foreach()是一个函数,通过对阵列中的每一个运行。此方法不返回一个值,基本相同,使用for循环迭代数组。

复制代码代码如下所示:

VaR Num = { 1,2,3,4,5,4,3,2,1 };

num.foreach(功能(项目){)

操作

});
9、合并方法

两添加新的方法在ecmascript5:reduceright()和减少()。两种方法接受两个参数:第一个是用来遍历数组的功能。函数有四个参数,即前一个值、当前值、该项的索引和数组对象,但是这个函数的任何值都会自动作为第一个参数传递给下一个项,第二个参数是第一个函数中第一个参数的初始值。

复制代码代码如下所示:

VaR号= { 12345 };

VaR和= nums.reduce(功能(沪指,cur,指数、阵列){

回沪指+电流;

});

警报(总和);15

相关文章

水晶按钮教你用ps制作蓝色圆形音符

水晶按钮教你用ps制作蓝色圆形音符

音符,按钮,教你用,水晶,蓝色,本教程是向大家介绍使用ps制作一个漂亮的蓝色圆形水晶按钮,制作简单的方法,而且按钮非常漂亮和质量!喜欢朋友学得快 制作水晶按钮的关键是把水晶的纹理呈现出来,可以抽出更多的图层。注意,每一层需要添加图层样式光…

出版Node.js程序包的教程和NPM

出版Node.js程序包的教程和NPM

教程,程序包,电脑软件,Node,js,是一种node.js.when开发Node.js的软件包管理器,它经常被用来安装/卸载包。事实上,发布包的工作也由它来完成。 配置package.json 包装程序,你必须首先匹配的各种设置,这是由在包根目录的package.json指定,packag…

PS合成美成可怕的行尸走肉课程

PS合成美成可怕的行尸走肉课程

行尸走肉,可怕,课程,电脑软件,PS,本教程是向朋友介绍一个朋友,把美丽变成一个可怕的行尸走肉。这个教程很好。我建议你最喜欢的朋友一起学习。 本教程将介绍ps合成,把美丽的女人变成可怕的行尸走肉。这个教程很好。推荐给你最喜欢的朋友。 材…

如何使用Corel敲扣透明物体

如何使用Corel敲扣透明物体

透明,如何使用,物体,电脑软件,Corel,本教程主要是介绍朋友如何使用Corel敲除捕捉透明物体。很适合初学者学习。非常适合初学者学习。 本教程主要是教你如何使用Corel敲除捕捉透明物体。 *如何绘制和编辑透明体的外部选区,以及如何使用单像…

徒手和flash混合应用教程

徒手和flash混合应用教程

教程,混合应用,电脑软件,flash,徒手和flash混合应用教程 随着软件版本的更新,该门下的闪光和写意的结合越来越好。以下为您介绍写意与Flash应用实例相结合的教程,我希望你能通过此教程帮助! 现在,您可以创建非常繁琐,Flash强大的绘图功能,在写…

PS图象处理软件简单的深色的婴儿照

PS图象处理软件简单的深色的婴儿照

照片,婴儿,深色,图象,处理软件,本教程是为PS图象处理软件的配色和美白方法为偏暗的宝贝简介。本教程非常实用。对初学者来说是值得学习的。 这本书主要是向你介绍PS图象处理软件的配色和美白治疗方法对宝宝的照片。主要课程是cc版本。其他…

php中文拦截功能mb_strlen和mb_sub

php中文拦截功能mb_strlen和mb_sub

中文,你自己,功能,电脑软件,php,我们都知道,PHP的函数strlen函数并不能处理汉字,所以我们将取代它的mb_系列功能。但你没有mbstring图书馆吗这就要求我们写一个替换它,不再废话,首先在代码上: 复制代码代码如下所示: 如果(!function_exists('mb_s…

PS图象处理软件是一个梦幻般的人物

PS图象处理软件是一个梦幻般的人物

恒星,是一个,图象,处理软件,梦幻般,本教程主要使用PS图象处理软件创建一个配置文件的渲染效果的星空和星光了。整体轮廓是由星空和星光组成的。效果很漂亮,和你一样的朋友可以一起学习。 本教程介绍一个朋友给PS图象处理软件创建一个配置文…

2015情人快乐个性签名百科全书

2015情人快乐个性签名百科全书

百科全书,个性签名,情人,快乐,电脑软件,一个鬼城,一个孤独的人,一个人。 空荡荡的监狱,一座城镇,让一个人。 我以后会和你一起去的。 我想和你一起去的方式 你想要爱,我买不起 我想爱你,但不是 不要跟姐姐的感情,因为姐姐早就戒掉了。 和你谈谈你…

面向对象编程(1)

面向对象编程(1)

面向对象编程,电脑软件,讲解中的讲解很细致,这里没有太多的废话,直接在代码上: / / ECMA-262定义一个对象作为一个集合的无序的属性,这些属性可以包含基本的价值观,对象或函数 理解对象,最简单的方法是创建对象的实例,然后为它添加属性和方法。 va…

CDR只产生立体效果。

CDR只产生立体效果。

效果,电脑软件,CDR,本教程是简要介绍CDR,这是一个简单的方法,使立体数码效果的朋友。教程产生的效果非常好。非常适合初学者学习。推荐朋友一起学习。 教程教朋友使用CDR来制作立体单词。这个教程很简单,三维的角色经常用于商业宣传和海报: 具…

jQuery插件实现多行文本框文本}{高

jQuery插件实现多行文本框文本}{高

插件,文本,高度,电脑软件,jQuery,实现的功能: 1 /自动增加一行的高度时,文本是线 2,当文本删除一行,它会自动降低一行的高度依赖。jquery.xxx.js需要在工作中使用类似的功能,但它发现它使用插件导入其他文件很不方便,所以就写了一个文件。 tex…