Array类型、数组创建、数组检测

来源:互联网 发布:base64解码算法 编辑:程序博客网 时间:2024/05/17 19:17

一、创建数组的基本方式(两种):

1、使用Array构造函数(可以省略new操作符,省略后的效果一样):

    var arr = new Array(10); //创建一个length属性值为10的数组    var arr = new Array("哈哈"); //创建一个包含一项,即字符串"哈哈"的数组

括号里只有一个数值时,该数值为创建数组元素的个数;两个或多个时,数值为数组的元素

2、数组字面量表示法

    var arr = [];    var arr = [1,2,]; //不要这样!这样可能会创建一个包含2或3项的数组    console.log(arr.length); //IE返回3;其他浏览器返回2    var all = [, , , , ,]; //不要这样!这样可能会创建一个包含5或6项的数组    console.log(all.length); //IE返回6;其他浏览器返回5

数组all的结果与调用Array构造函数时传递项数在逻辑上是相同的。但是由于IE的实现与其他浏览器不一致(IE会创建包含6项的数组,而其他浏览器会创建包含5项的数组),因此建议不要使用这种语法。

ps: 域对象一样,在使用数组字面量表示法时,也不会调用Array构造函数(Firefox3-除外)

二、索引

读取或设置书序的值。

var arr = ["red", "blue"];arr[0] = "green"; //设置arr[4] = "back"; //新增

三、length属性

通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。

var arr = ["red", "blue", "green"];arr.length = 1; //移除索引值为0后面的所有元素var arr = ["red", "blue", "green"];arr.length = 5; //新增项 arr = ["red", "blue", "green", ,] 以逗号扩展补充

新增项,等同于push()方法:

var arr = ["red", "blue", "green"];arr[arr.length] = "gray";arr[arr.length] = "yellow";document.write(arr);

创建复杂的数组:

var arr = [    {        name: "zhangsan",        age: 20    },    [1, 3, 4, "haha", new Object()],    "hello!",    20 + 10,    new Array(1, 2, 3)];document.write(arr.length); //5document.write(arr[0].name); //zhangsanarr[1][4].say = "hi";document.write(arr[1][4].say);

ps: 数组最多可包含4 294 967 295个项,超出即会发生异常。

四、检测数组

  • ArrayName instanceof Array; 操作符
  • Array.isArray(ArrayName);方法

instanceof操作符

对于一个全局作用域而言,使用instanceof操作符就能得道结果(有些IE不支持)。
instanceof操作符的问题在于,它假定只有一个全局执行环境。如果有两个以上全局执行环境(如有多

个框架时)就会存在两个以上不同版本的Array构造函数。

var ary = [1, 2, 3, 4, 5];var obj = {name:"lis", age: 13};console.log("ary是不是数组:" + (ary instanceof Array));console.log("obj是不是数组:" + (obj instanceof Array));

Array.isArray()方法

支持此方法的浏览器有IE9+、Firefox 4+、Safari 5+、opera 10.5+和chrome。

console.log("ary是不是数组:" + Array.isArray(ary));console.log("obj是不是数组:" + Array.isArray(obj));
0 0
原创粉丝点击