javascript代码实例教程-javascript核心基础(数组专题)

发布时间:2019-02-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript核心基础(数组专题)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 0.注意事项

javascript的数组的应用是非常广泛的,数组是一种经过优化的类,巧妙地使用数组,可以使程序效率翻倍的提升,学习数组,需要特别注意以下几点:

 

1.数组是没有类型的:例如VAR a = [1,'123',object,{},[],false],这种无下限,无节操的特点,使得创建多维数组,对象数组有了可能。

 

2.数组的索引值是从0~232-2的数值,这是数组所能容纳的最大容量,其实如果不是故意找麻烦,数组的长度足够用了。

 

3.javascript的数组是动态的,你完全没有必要在声明数组的时候指定其长度,即使指定了也没啥意义,如var array = new Array(10);当其真实数据超过10个时,会动态分配空间

 

4javascript数组的索引不一定是连续的,例如稀疏数组(基本上不用考虑,很少使用)

 

5.从宏观上来看,数组也是一个对象,其下标值跟一个常规对象的属性是非常类似的,我们经常使用user.name来访问一个类的属性,数组我们使用array[1]来访问,其实使用user[name]访问属性也可以,数组继承自Array.PRototyPE中的属性,其含有很多有用的函数,这些方法同样适用于类数组对象,特别是对于字符串,使用数组的方式,有时会特别简单(后面会专门讨论)

 

 

 

1.数组的创建

数组的创建有两种方式(1)var array = []; (2)var array = new Array();第一种方式比第二种方式要清晰方便的多,所以建议使用第一种。

 

1 var array = [];

2 var array = [1,3,2,[1,2],object,'abc',true,{}];

3 var array = [,,,];//由于数字可以设置末尾有可选的“,”此表示两个undefined

2.数组元素的访问及与常规类的差异

前面提到数组可以通过new Array()来创建,继承了Array.prototype中的属性,可知数组其实就是一个类,其访问属性的方式都可以是obj[arr]的形式,把数组的下表数字转化为字符‘1’,‘2’...后,完全可以看成就是一个常规类,数组和常规类最大的不同时数组有一个length属性,当我们给一个非负整数赋值(范围内),length属性会自动的更改,如果是范围外的或字符串等,将视为数组的属性,这样我们在访问数组或对象时永远也不会有越界的错误,最多是undefined。

 

var  o = [];

o[1] = 'aaaa';//length为2

o[1.23] = 'bbbb'//length不变,a有了一个‘1.23’的属性

a['100'] = 'vvvv';//表示在100这个位置添加了一个 元素,length为101

 

 

3.数组的增删改查

增删改查是我们程序员的基本功,熟练掌握数组的增删改查是必要的,数组的访问和修改一般按照常规的array[i]的形式进行,此处重点说明增加和删除操作,以及查询的一些小技巧。

 

1.增加和删除:

 

复制代码

//添加1

var a = [];

a[0]=0,a[1] = 1;//最基础的方式

//添加2,使用push方法

a.push('one','two',);//可以多个参数,在数组末尾添加值,并返回新的数组长度

//删除1

a.pop();//与push方法相对应的,移除数组末尾的一个值,没有参数,返回移除的元素。这两个方法都是在原数组上进行改动,可以实现数组的栈形式

a = [1,2,3,4,5,6];

delete a[1];//表示在1这个位置的数据被删除掉

1 in a //false 

//与pop()和push()对用的方法,shift()和unshift()方法

a = [];

a.unshift(1);//a:[1]  返回1

a.unshift(2,3);//a:[2,3,1] 返回3,可以看到多个参数的不同

a.shift();//a:[3,1] 返回2

//splice 方法可以完成插入删除或两者兼顾

var a = [1,2,3,4,5,6,7];

a.splice(1,2,'a','b')//返回[1,'a','b',4,5,6] 第一个参数表示删除或者插入的起始位置,第二个参数表示要删除的个数,其余的参数都是要此位置插入的数据

复制代码

 2.数组遍历

 

使用for循环是遍历数组最好的方式

 

var keys = object.keys(o);

var values = [];

for(var i =0; i < keys.length; i++){

  var key = keys[i];

  values[i] = key;   

}

 

 

4.数组中常用到的一些方法

ECMAScript3中常用方法

 

1.join(),将数组的所有元素转化为字符串并联在一起,并返回字符串。

 

var a = [1,2,3,4];

a.join();//返回'1,2,3,4'

a.join(" ");//返回'1 2 3 4 '

a.join('-');//'1-2-3-4'

 

 

2.reverse(),数组元素循序变换,返回逆序数组

 

var a = [1,2,3];

a.reverse();

var s = a.join(-);//s:'3-2-1'

 

 

3.sort(),排序并返回排序后的数组

 

//默认按字母顺序排序,undefined排到最后,我们亦可以自定义排序

var a = [1,22,111,3];

a.sort(function(a,b){//此处使用匿名函数,没必要起名字

return a-b;//如果小于0,a在前,小于0,b在前

});

 

 

4.concat()两个数组的连接,需注意以下细节

 

var a = [1,2,3];

a.concat([4,5]);//返回[1,2,3,4,5]

a.concat(4,5);//[1,2,3,4,5]

a.concat(4,[5,[6,7]]);//[1,2,3,4,5,[6,7]]

 

 

5.slice()数组截取。第一个参数表示开始位置,第二个表示结束位置,第二个参数可以省略

 

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

a.slice(0,3);//[1,2,3]

a.slice(3);//[4,5]

a.slice(1,-1);//[2,3,4]

a.slice(-3,-2)//[3]

 

 

6.splice ()略

 

7.push()  pop()略

 

8.unshift()  shift()略

 

9.toString()//与join()方法类似

 

 

 

ecmascript5中的9个方法

 

(ECMAScript5大多数方法有两个参数,第一个是一个函数,第二个是可选的)

 

1.foreach(),遍历数组。略

 

2.map(),相当于生成一个一一对应的新数组

 

a = [1,2,3];

b = a.map(function(v){return v*v});//返回[1,4,9]

 

 

3.filter()通过一定的逻辑找出找的数据

 

复制代码

a=[1,2,3,4,5];

a.filter(function(x){

    return x < 3;//小于3的x

});//返回[1,2]

 

//常用于压缩数组

var b = a.filter(function(x){return ture});

 

var c = a.filter(function(x){

    return x!=undefined && x!=null;

});

复制代码

 

 

4.every() some()返回true和false ,用法与filter相似 

 

5.indexOf()  lastIndexOf()给定一个值,搜素整个数组,找到其下标值,否则返回-1

 

6.reduce()   reduceRight() 指定函数对数组元素进行组合

 

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

//求和

var sum = a.reduce(function(){

return x+y;

},0);

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

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript核心基础(数组专题)全部内容,希望文章能够帮你解决javascript代码实例教程-javascript核心基础(数组专题)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。