摘要: 如果你习惯了用 new 来实例化对象的形式,那么在js中一定会疑惑,可选的参数数量代表的意义截然不同。

脚本宝典收集整理的这篇文章主要介绍了

javascript代码实例教程-javascript 数组特性鉴赏一

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 创建数组

 

如果你习惯了用 new 来实例化对象的形式,那么在js中一定会疑惑,可选的参数数量代表的意义截然不同。

 

new Array(size);//传一个参数的时候分两种情况,size是正整数时代表数组的长度;size是其它非数字类型代表的是初始化有一个元素的数组;非正整数的尝试豪无意义

 

new Array(element1, element2[, ...]);//两个以上的参数代表数组元素列表

 

实际更常用的是: var arr = [];//使用字面量的形式直接定义

 

 

 

数组长度

 

js数组的长度属性length不是只读的属性,你可以通过修改一个数组的length值来控制其元素的个数。控制元素的策略是当length设定值比当前实际值小的时候,会舍去多余的元素;当设定值大于当前实际值的时候,会填充多个空值(undefined),这个特性使得在修改数组大小的时候非常方便。

 

var arr = [1,2,3,4,5];

 

arr.length = 3;//此时arr:[1,2,3]

 

arr.length = 6;//此时arr:[1,2,3,,,]

 

 

 

数组拼接 concat

 

多个数组的拼接方法是 concat ,调用方式为 array1.concat(item1, item2[, ...]),其中item既可以是数组又可以是其它值,item若为数组,则展开其值和array1内容拼接到一起,其它则直接拼接。

 

单从字面上看会误以为所有的item都会拼接到array1的末尾,但实际上该方法并不修改array1的值,而是将array1作为数组片段和其它提供的item片段拼接后返回一个新的数组。

 

如果想要达到修改array1的目的,只需一个赋值操作即可。array1 = array1.concat(item1, item2[, ...]);

 

 

 

数组元素的连接 join

 

join 方法返回按指定分隔符分隔,连接到一起的所有元素,默认分隔符为逗号。调用方式为 arr.join(separator),若元素当中的值为 null、undefined 或者空字符串的值在join后都当作空字符串处理。

 

 

 

移除数组第一个元素 shift

 

arr.shift() 方法移除第一个元素,返回该元素,数组为空返回 undefined。

 

 

 

移除数组末尾元素 pop

 

arr.pop() 方法移除数组中最后一个元素,返回该元素,数组为空返回 undefined。

 

 

 

添加新元素到数组开始 unshift

 

unshift插入指定元素到数组的开始位置,返回该数组。

 

arr.unshift(item1, item2[, ...]),可以一次按参数序列的顺序插入多个值,若item为数组不会被展开

 

 

 

添加新元素到数组末尾 push

 

push方法将新元素添加到数组中,返回数组的新长度值。

 

arr.push(item1, item2[, ...]),可以一次按参数序列的顺序添加多个值,若item为数组不会被展开

 

 

 

反转元素的顺序 reverse

 

arr.reverse() 方法将数组元素位置进行反转,方法执行后原数组会被修改。

 

 

 

数组片段截取 slice

 

arr.slice(start, [end]) 方法返回数组的一个截取片段。从数组下标 start 开始到 end 结束,不包括end。

 

var arr = [0,1,2,3,4,5,6];

 

arr.slice(2, 6);//[2,3,4,5]

 

 

start 和 end 可以为负值,取值的意义为与数组长度 length 之和即 start+length 或者 end+length 。

arr.slice(-5, 6);//[2,3,4,5] 可以理解为从倒数第5个至正数第6个

 

arr.slice(2, -1);//[2,3,4,5] 可以理解为从第2个至倒数第1个

 

end 省略时代表截取到数组的末尾, start 和 end 都省略时返回一个arr的拷贝。

 

arr.slice(0);//[0,1,2,3,4,5,6],起始索引 0 可省略

 

最终取值 start 小于 end。

 

arr.slice(6, 3);//[],使用slice截取数组片段之前一定要验证start<end,否则这种返回结果会产生非常隐蔽的bug

 

 

 

数组中移除或插入元素 splice

 

arr.splice(start, deleteCount, item1, item2[, ...]),从数组中 start 下标开始移除 N 个元素,如果需要可以在移除的元素位置上插入新元素列表,返回值是一个由被移除的元素组成的数组。

 

当只插入新元素时,设定 deleteCount 值为 0 即可,该方法会动态改变原数组内容。

 

 

数组元素排序 sort

 

arr.sort(sortFunction),可选的排序方法sortFuction接受两个数组元素作为参数,对数组的元素进行排序,返回排序后的数组,该方法会动态改变数组内容。

 

不提供排序方法时数组中的元素按照ASCII字符顺序升序排列。

 

['1',1,0,2,'abc','aba'].sort(); //返回[ 0, '1', 1, 2, 'aba', 'abc' ]

 

若提供了sortFunction(x, y) 则必须返回以下值之一:

负值,如果所传递的第一个参数比第二个参数小。 

零,如果两个参数相等。 

正值,如果第一个参数比第二个参数大。 

sortFunction 提供了一个比较两个任意类型数组元素大小的方法, 返回正数时则参数 x 会排在 y 的后边,返回负数时相反,比对所有元素后完成排序。

 

既然排序依据的是该函数的返回值,那么具体的排序规则就可以灵活的计算。

 

纯数字型元素的数组排序:

 

[2, 6, 1, 4, 3, 5].sort(function(x, y){

     return x - y;

});

 

//正序:[1, 2, 3, 4, 5, 6]

 

[2, 6, 1, 4, 3, 5].sort(function(x, y){

     return y - x;

});

 

//倒序:[6, 5, 4, 3, 2]

 

排序方法的关键在于返回值的计算方式,所以对于非数字型的数组元素也可以方便的进行排序

 

[ {name: 'jim', age: 12}, {name: 'susan', age: 8}, {name: 'jack', age: 14} ].sort(function(x, y){

     return x.age - y.age;//按年龄正序

});

//[ { name: 'susan', age: 8 }, { name: 'jim', age: 12 }, { name: 'jack', age: 14 } ] 

 

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

总结

以上是脚本宝典为你收集整理的

javascript代码实例教程-javascript 数组特性鉴赏一

全部内容,希望文章能够帮你解决

javascript代码实例教程-javascript 数组特性鉴赏一

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过