JavaScript Array 的学习

摘要:
首先创建数组1varempty=[]//创建一个空数组;2vardiffType=[1,'a',2.3,{},[4,5],,];//创建一个包含不同类型的数组3varundef=[,,]//创建一个空元素数组。注意这里数组的长度是2,而不是3。JavaScript数组允许最后一个逗号。然而,IE678的长度为3.4 3.4 varianstance=newArray()//当然,您也可以使用Array类创建一个与[]效果相同的数组。1vara=[1,空,[10,12,[23,25]],2,,3,未定义,6];2控制台。日志;//[1,null,数组[3],2,,3,未定义,6]3控制台。日志;//“1、10、12、23、25、2、3、6”方索。日志;//“1,,10,12,23,25,2,,3,,6”Reverse()反向数组排序如果没有参数,将按字符顺序排序。调用方法如下:1varb=[1,2,3];2控制台。日志;//[1,2,3100101]3控制台。日志;//[1,2,3100101]4控制台。日志;//[1,2,3100101102103]5控制台。日志;//[1,2,3100101,阵列[2]它不会更改数组中数组切片返回的指定间隔的元素。1varb=[1,2,3,4,5];2控制台。日志;//[1,2,3]3控制台。日志;//[4,5]4控制台。日志;//[]5控制台。日志;//[3] Splice(startIndex[,length,p1,p2,p3,…]返回截取的元素,原始数组将被更改。toString()为数组中的每个元素调用toString方法。

首先创建数组

1     var empty = [];//创建一个空的数组;
2     var diffType = [1,'a',2.3,{},[4,5],,];//创建一个包含不同类型的数组
3     var undef = [,,]//创建一个空元素数组,注意这里数组的长度是2,不是3.JavaScript数组允许最后多一个逗号。但是在IE678长度是3.
4     var instance = new Array();//当然也可以用Array类创建一个数组,效果和[]一样。

读写数组元素

1     var b = [1,null,2,,3,undefined,6];//定义一个数组
2     b[0];//读数组的第一个元素
3     b[0] = 100;//写数组的第一个元素,数组的下标可以是一个表达式
4     b[12.34] = 1234;//数组的下标可以不是一个整形数字,此时会将12.34作为一个属性名称,为b定义一个属性
5     b["12"] = 12;//当数组的下标是一个可以直接转化成整形数字的字符串时,就像当于写b[12] = 12,数组的length就成13了
6     b["13.00"] = 13;//当不能直接转化成正整数时,依然作为属性名处理
7     b[14.00] = 14;//可以直接转化成正整数,就相当于b[14] = 14,此时b.length = 15;
    var x = [,,,];//在IE9,10长度为3,IE8极更早的版本长度为4
var y = new Array(3);//注意:数组x, y 是有区别的。x,y都表示定义了一个长度为3的数组,但是x的三个元素值都为undefined,y的三个元素都没有值。但是表现是一样的。
console.log(0 in x);//false
console.log(0 in y);//false

 数组的一些方法

push(p1,p2,...)在数组的末端添加元素,可以一次添加多个

pop()移除并返回最后一个数组元素

delete()将数组中的制定元素置为undefined,并不影响length属性。

join(p)将数组转化为字符串,用p分割。注意该方法会将递归内嵌的数组元素,一次调用toString()方法。

1 var a = [1,null,[10,12,[23,25]],2,,3,undefined,6];
2 console.log(a);//[1, null, Array[3], 2, , 3, undefined, 6]
3 console.log(a.join());//"1,,10,12,23,25,2,,3,,6"
4 console.log(a.join(", "));//"1, , 10,12,23,25, 2, , 3, , 6"

reverse()反转数组

sort(f(a,b))如果没有参数,就按照字符顺序排序。undefined元素会排在最后。f是一个函数,用于定义排序规则。f返回值<=0,a在b前,否则b在a前。

concat()返回组合后的数组,但是并不改变原有数组。调用方法如下

1 var b = [1,2,3];
2 console.log(b.concat(100,101));//[1, 2, 3, 100, 101] 
3 console.log(b.concat([100,101]));//[1, 2, 3, 100, 101] 
4 console.log(b.concat([100,101],[102,103]));//[1, 2, 3, 100, 101, 102, 103]
5 console.log(b.concat([100,101,[103,104]]));//[1, 2, 3, 100, 101, Array[2]]。并不会改变数组内的数组

slice(startIndex [,endIndex])返回指定区间(左闭右开)的元素。

1 var b = [1,2,3,4,5];
2 console.log(b.slice(0,3));//[1, 2, 3]
3 console.log(b.slice(3));//[4, 5]
4 console.log(b.slice(7));//[] 
5 console.log(b.slice(-3,-2));//[3]

splice(startIndex [,lenth,p1,p2,p3,...]返回被截取的元素,原来的数组将被改变。

1 var c = [1,2,3,4,5,6,7,8];
2 console.log(c.splice(4));//[5, 6, 7, 8]
3 console.log(c.toString());//[1, 2, 3, 4]
4 console.log(c.splice(3,1,5,6,7,8));//[4]
5 console.log(c);//[1, 2, 3, 5, 6, 7, 8]

shift()删除数组的第一个元素。

unshift(p1,p2,...)将参数添加在数组的开头。

toString()将数组中的每一个元素调用toString方法。

免责声明:文章转载自《JavaScript Array 的学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇核心期刊将你的苹果变成“猫”:电脑上网巧用iPhone下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

使用C#生成应用程序以及读取和写入dbfs时,打开方法error[IM002][Microsoft][ODBC驱动程序管理器]中发生错误。找不到数据源名称,也未指定默认驱动程序。这个程序以前使用得很好。升级和修改后,在测试中发现了问题。为了追踪来源,我曾经是一个32位操作系统。现在我安装了一个win764位操作系统。从控制面板到管理工具再到ODBC驱动程序,...

RPi 树莓派 DSI 接口研究 MIPI raspberry pi

我已经玩树莓派很久了。我发现尚未使用DSI显示界面。经过一些研究,我发现它很有趣。我稍后会记录相关信息。(更新1:目前,整个网络上有很多方案来研究hdmi和mipi之间的相互转换方案:a.)mipi屏幕+hdmi界面:大多数都是因为有很多mipi屏幕和漂亮的参数而被研究的。详细信息:谷歌,得益于包括智汇在内的各种大神的研发,如Pocket LCD方案。最困难...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...

pycharm最新版本激活码(永久有效) python安装教程

输入python以查看当前版本的python。您可以输入“print'helloworld”并单击下载以启动PyCharm://pan.baidu.com//1eVdm4dUPKn3ZY_Xj kqNXw提取代码:l83f2,下载破解补丁(版本2018.3.5)下载链接至地址:...

LaTeX表格tabular背景色添加技巧 [转]

我们所用的宏包为colortbl,这个宏包可以设置表格中数据、文本、行、列、单元格前景和背景以及边框的颜色,从而得到彩色表格。同时需要array和color两个宏包的支持。宏包提供了一组着色命令,经常用到是列着色命令,其格式为:\columncolor[色系]{色名}[左伸出][右伸出]。常用色系有三原色rgb灰度gray和四色cmyk三种;被预定义的色名有...

【译】颜色空间 REC.709 vs sRGB的

但转换函数(gamma)不同。让我们先定义颜色空间。颜色模型和颜色空间非常混乱。RGB颜色模型表示所有颜色都可以通过RGB的线性组合获得,而颜色空间是指能够解析数值的颜色模型。颜色空间的定义包含以下信息。颜色空间可以基于RGB模型检测颜色,因此使用三原色来表示所有颜色似乎是合理的。三原色的颜色坐标与sRGB相同。...