六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 48|回复: 0

javascript数组

[复制链接]

升级  4.67%

62

主题

62

主题

62

主题

举人

Rank: 3Rank: 3

积分
214
 楼主| 发表于 2013-1-27 05:00:54 | 显示全部楼层 |阅读模式
我们常常将对象和数组作为不同的数据类型来处理,这样就可以把对象和数组作为单独的类型来处理.但是要完全掌握对象和数组的行为,你还必须了解数组不过是一个具有额外功能层的对象.我们使用typeof就会发现这一点.javascript1.1开始支持数组.
-----------------------------

数组是一种数据类型,它包含了编码的值,每个编码的值被称作该数组的一个元素,每个元素

的编码被称为下标.由于js是一种无类型语言,所以一个数组的元素可以是具有任意类型的数

据类型.统一数组的不同元素可以具有不同的类型,数组的元素甚至可以包含其它数组,这样

就可以创建一个复杂的数据结构,即元素为数组的数组.

-----------------------------
Array构造函数创建数组的三种方式
var a = new Array();//一个没有元素的空数组var a = new Array(5,4,3,"testing");//可以是任意类型,明确制定前n个元素的值var a = new Array(5);//具有指定的元素个数(每个元素的值都是undefined),还将数组的length属性设成了指定的值.

-----------------------------
使用数组直接量来创建数组:
var a = [2,3,5,7];var b = ['a',true,1.24];数组直接量还可以包含对象直接量或其它的数组直接量
var c = [[1,2,3],[4,5,6],[7,8,9]];var c = [1.2,"javascript",true,(x:1,y:2)];

-----------------------------
数组元素的读写
var m_value = a[0];a[0] = 2;//第一个元素下标是0

[]还可以用来存取已命名对象的属性
a['salary'] = 2;//告诉我们对象和数组本质是相同的.

-----------------------------
数组的下标必须大于等于0并小于2的23次方减1.如果你使用的数字太大,或使用了负数,浮点

数(或布尔值),js会把它转换为一个字符串,用生成的字符串作为对象属性的名字,而不是作

为数组的下标.
a[-1.23]= true;//创建了一个名为"-1.23"的属性,而不是定义一个新的数组元素
-----------------------------
定义数组时候不必指定元素的个数

a[0] = 1;a[1000] = "this is element 1000";//只有a[0]和a[1000]分配到了内存,中间的元素并没有分配到内存.

-----------------------------
数组的长度length
var a = new Array();a = new Array(10);a = new Array(1,2,3);a = [4,5];//长度在变化a[5] = -1;//a.length==6;a[49] = 0;//a.length==50用于遍历
var fruits=["mango","banana","cherry","pear"];for(var i = 0;i<fruits.length;i++){alert(fruits[i]);}
length可以被设置
和delete的区别
-----------------------------

多维数组
js并不支持真正的多维数组,但是它允许使用元素为数组的数组.

-----------------------------
数组的方法
除了[]运算符外,还可以使用类Array提供的各种方法来操作数组.

join();var a = [1,2,4];var s = a.join();var s2 = a.join(", ");和String.split()相反

-----------------------------
reserse();
var a = new Array(1,2,3);a.reverse();var s = a.join();-----------------------------

sort();
var a = new Array("banana","cherry","apple");a.sort();var s = a.join();
var a = [33,4,1111,222]
a.sort();
a.sort(function(a,b){reuturn a-b;});
-----------------------------
var a = [1,2,3];a.concat(4,5);a.concat([4,5]);a.concat([4,5],[6,7]);//[1,2,3,4,5,6,7]a.concat(4,[5,[6,7]]);//[1,2,3,4,5,[6,7]] 不能展开数组的数组

-----------------------------
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]
-----------------------------
toString()
[1,2,3].toString();//"1,2,3"[1,[2,'c']].toString();//"1,2,c"

参考资料:js权威指南
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表