JavaScript核心对象-数组对象

JavaScript核心对象-数组对象

在JavaScript中,所有的一切都是对象,为了便于开发工作,JavaScript提供了处理字符串、数学运算、日期和时间、正则表达式和数值等一系列的内置对象,它们都遵从ECMAScript1.0规范,因此在所有平台下这些对象的功能和表现都是一样的。

 

数组是一种具有相同类型值的集合,它的每一个值称为数组的一个元素。数组用于在内存中存储大量相同类型的数据,可以通过数组的名称和下标来访问数组中的元素。

数组的下标也成为索引值,有两种类型的索引值:非负整数和字符串索引值。使用字符串索引值的数组又称为关联数组。数组是JavaScript的一种内置对象。

 

声明数组

和其它变量一样,数组在啊使用之前需要声明,即创建数组对象。声明数组的语法有三种形式:

1
2
3
var  arr =  new  Array();
var  arr =  new  Array(n);
var  arr =  new  Array(e0,e1,e2,...e(m));

  

第一种声明形式声明了一个空的数组,它的元素个数为0;第二种声明形式声明了一个有n个元素的数组,但每一个元素的值还没有定义;第三种声明形式声明了有m个元素的数组,它的各个值依次为e0,e1,e2,...e(m)。例如:

1
2
3
var  arr1 =  new  Array();                  //创建一个空数组
var  arr2 =  new  Array(100);               //创建有100个元素的数组
var  arr3 =  new  Array( "red" , "blue" , "green" ,1,2,3); //创建有6个值得数组 

  

JavaScript的数组是动态数组,在声明数组的时候,无论是否值得了数组的元素个数,都可以根据需要调整元素的数量。JavaScript按需要分配内存,动态扩展和压缩数组。数组元素通过下标来访问,下标放在放括号[]中。当数组下标为整数时,下标从0开始计数。

  

和其它编程语言不同的是,JavaScript数组可以存储任何类型的的值,也就是说,数组中第一个元素可以存储数值,第二个元素可以存储字符串类型的值,第三个元素可以存储对象等等。

在JavaScript中,可以使用字符串来作为数组的下标来访问数组。通过字符串下标来访问数组称为关联数组。字符串下标通常称为键。下面是一个例子:

1
2
3
4
5
6
var  states =  new  Array();
states[ "京" ] =  "北京市" ;
states[ "翼" ] =  "河北省" ;
states[ "豫" ] =  "河南省" ;
states[ "粤" ] =  "广东省" ;
states[ "闽" ] =  "福建省" ;

  

数组的属性和方法

数组是JavaScript中的一个对象,它有一组属性和方法。下表是数组的属性:

属性 含义
constructor 引用数组对象的构造函数
length 返回数组元素的个数。如果在创建数组时指定了数组的长度,那么无论数组元素中是否超出了实际数据,该属性的值都是这个指定的长度值
prototype 用于在定义数组时添加新的属性和方法。Prototype是数组对象的静态属性。

 

 

 

 

 

 

其中最常用的是length属性,它通常用于在for循环中遍历数组时使用。

 

数组提供了12个有用的方法,利用这些方法可以使用数组实现栈操作、数组元素排序、颠倒数组元素、将数值拼接为一个字符串等。下表中列出了这些方法:

方法 含义
cancat(value,...) 将两个数组合并为一个新的数组,参数指定的数组的数组元素放在后面。该方法的参数可以是一个数组,也可以是一组值。
join(separator) 使用指定的分隔符(separator)将数组元素依次拼接起来,形成一个字符串返回。
push(value,...) 在数组末尾增加一个活多个数组元素(增加的元素数量与参数个数相同),并返回增加元素后的数组长度。该操作相当于数据结构中的入栈操作。
reverse() 颠倒数组中元素的次序。例如,如果数组中各个元素的值依次为1/2/3/4/5,那么执行reverse()方法之后,数组的值依次为5、4、3、2、1。
shift() 删除数组的第一个元素,并返回其值,数组的长度减少1.该操作相当于数据结构中的出队列操作。
slice(start,end) 从现有数组中提取指定个数的数据元素,形成一个新的数组。所提取元素的下标从start开始,到end结束,但不包括end。
sort(orderfunc) 将数组元素排序。参数orderfunc可选。省略该参数时,按字母顺序或汉字的拼音方式排序。可以使用orderfunc来指定排序方式。orderfunc为排序函数的名称,该函数应该使用两个参数,并返回一个整数值。返回值的要求是:当第一个参数大于第二个参数时,返回值大于0;当第一个参数等于第二个参数时,返回值等于0;当第一个参数小于第二个参数时,返回值小于0。
splice(start,delteCount,value...)  从start指定的位置开始,删除delteCount个数组元素,然后在删除位置前面添加于value值个数相同的数组元素,并以此将其值设置为value参数指定的值。该函数的功能相当于文本编辑器中的替换功能。
toLocaleString() 返回数组的本地化字符串表示。
toString() 返回数组的字符串表示。
unshift(value,...) 在数组的开始位置增加一些数组元素,增加的数组元素的数量与value参数的个数相同,并依次使用参数value对各数组元素赋值。

 

 

 

 

下面是上面常用函数的一些应用示例。

concat()方法应用示例

concat()方法将两个数组合并为一个新的数组。

1
2
3
4
var  arr1 =  new  Array( "红色" , "蓝色" , "绿色" );
var  arr2 =  new  Array( "粉红色" , "紫色" );
var  arr3 = arr1.concat(arr2);
document.write(arr3);  //合并后的数组arr3为:红色,蓝色,绿色,粉红色,紫色

  

 

join()方法应用示例

join()方法使用指定的分隔符将数组元素拼接为一个字符串返回。

1
2
3
4
var arr1 = new Array("红色","蓝色","绿色");
var arr2 = new Array("粉红色","紫色");
var arr3 = arr1.concat(arr2);
document.write(arr3.join("-"));//合并后的数组arr3调用join()方法的结果为:红色-蓝色-绿色-粉红色-紫色 

  

 

push()方法应用示例

push()方法在数组末尾添加一个或多个元素。

1
2
3
var arr = new Array("红色","蓝色","绿色");
arr.push("粉红色","紫色");
document.write(arr); //调用push方法后数组的值为:红色,蓝色,绿色,粉红色,紫色

  

 

pop()方法应用示例

pop()方法从数组末尾删除一个元素,并返回其值。

1
2
3
4
var arr = new Array("红色","蓝色","绿色");
var value = arr.pop();
document.write(arr); //调用pop方法后数组的值为:红色,蓝色
alert("返回的值为:"+value);  //返回的值为:绿色 

  

 

shift()方法应用示例

shift()方法从删除数组中的第一个元素,并返回其值。

1
2
3
4
var arr = new Array("红色","蓝色","绿色");
var value = arr.shift();
document.write(arr); //调用shift方法后数组的值为:蓝色,绿色
alert("返回的值为:"+value);  //返回的值为:红色

  

 

unshift()方法应用示例

unshift()方法在数组第一个元素前面增加一些数组元素。

1
2
3
var arr = new Array("红色","蓝色","绿色");
arr.unshift("粉红色","紫色");
document.write(arr); //调用unshift方法后数组的值为:粉红色,紫色,红色,蓝色,绿色

  

 

sort()方法应用示例

sort()方法排序数组中的元素,既可以使用默认的方法,也可以自定义排序方法。

 sort() 默认排序

1
2
3
var arr = new Array("2","11","1","25","12","90","36","28","100");
arr.sort();
document.write(arr); //调用默认sort方法后数组的值为:1,100,11,12,2,25,28,36,90

上面使用的是默认的排序非常,默认方式下,数组以ASCII值的大小来进行排序。我们可以自定义排序的方法,如果需要按照数字的大小来排序,可以像下面这样:

1
2
3
4
5
6
function mysortfunc(str1,str2){
   return parseInt(str1) - parseInt(str2);
}
var arr = new Array("2","11","1","25","12","90","36","28","100");
arr.sort(mysortfunc);
document.write(arr); //调用自定义sort方法后数组的值为:1,2,11,12,25,28,36,90,100

  

 

reverse()方法应用示例

reverse()方法颠倒数组中的所有元素。

1
2
3
var arr = new Array("2","11","1","25","12","90","36","28","100");
arr.reverse();
document.write(arr); //调用reverse方法后数组的值为:100,28,36,90,12,25,1,11,2

  

 

slice()方法应用示例

slice()方法将一个数组中的部分元素复制到一个新的数组中。它的第一个参数指定从哪个下标开始复制数组,第二个参数指定复制结束的数组元素下标,slice()方法不复制第二个参数指定的元素。

1
2
3
var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat");
var sliceArr = arr.slice(1,3); //从下标1开始,截取到下标为3的元素,不包括下标为3的元素
document.write(sliceArr); //调用slice方法后数组的值为:Mon,Tues

  

 

splice()方法应用示例

 

splice()方法从指定的数组下标开始删除指定个数元素,然后可以使用一组新的数组元素代替被删除的元素。该方法第一个参数指定开始的数组下标,第二个参数指定要删除的元素个数,后面的参数为要插入的元素。

1
2
3
var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat");
arr.splice(1,3,"星期一","星期二","星期三");//从下标1开始,删除3个元素,并将后面参数指定的元素插入到删除的位置
document.write(arr); //调用slice方法后数组的值为:Sun,星期一,星期二,星期三,Thurs,Fri,Sat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 JavaScript简介 1 1.1 JavaScript是什么 1 1.2 JavaScript不是什么 2 1.3 JavaScript的用处 3 1.4 JavaScript及其在Web页面中的位置 3 1.5 Ajax是什么 5 1.6 JavaScript是什么样子的 6 1.7 JavaScript及其在Web开发中承担的角色 7 1.8 JavaScript和事件 9 1.9 标准化JavaScript和W3C 11 1.9.1 JavaScript对象 12 1.9.2 文档对象模型 12 1.10 关于浏览器 13 1.10.1 JavaScript的版本 14 1.10.2 你的浏览器遵循标准吗 16 1.10.3 浏览器是否已启用JavaScript 16 1.11 JavaScript代码放在哪儿 17 1.12 验证标签 20 1.12.1 W3C验证工具 21 1.12.2 Validome验证工具 21 1.13 应知应会 22 练习 23 第2章 脚本的安装 24 2.1 HTML文档与JavaScript 24 2.2 语法细节 27 2.2.1 区分大小写问题 27 2.2.2 自由形式及保留字 27 2.2.3 语句及分号 28 2.2.4 注释 28 ... 2.2.5 〈script〉标签    2.3 生成HTML 并输出显示    2.3.1 字符串及字符串串联    2.3.2 write()及writeln()方法    2.4 关于调试    2.5 调试工具    2.5.1 Firefox    2.5.2 在Internet Explorer 8中调试    2.5.3 [removed]URL 协议    2.6 JavaScript与旧浏览器或受限的浏览器    2.7 应知应会    练习    第3章 数据类型、字面量和变量    3.1 数据类型    3.1.1 基本数据类型    3.1.2 复合数据类型    3.2 变量    3.2.1 有效变量名    3.2.2 声明和初始化变量    3.2.3 动态或宽松类型语言    3.2.4 变量作用域    3.2.5 变量的拼接    3.3 常量    3.4 要注意的bug    3.5 应知应会    练习    第4章 对话框    4.1 与用户交互    4.1.1 alert()方法    4.1.2 prompt()方法    4.1.3 confirm()方法    4.2 应知应会    练习    第5章 运算符    5.1 JavaScript运算符和表达式    5.1.1 赋值运算符    5.1.2 优先级和结合性    5.2 运算符类型    5.2.1 算术运算符    5.2.2 快捷赋值运算符    5.2.3 递增运算符和递减运算符    5.2.4 拼接运算符    5.2.5 比较运算符    5.2.6 逻辑运算符    5.2.7 条件运算符    5.2.8 位运算符    5.3 数字、字符串还是布尔值?数据类型转换    5.3.1 parseInt()函数    5.3.2 parseFloat()函数    5.3.3 eval()函数    5.4 特殊运算符    5.5 应知应会    练习    第6章 条件选择    6.1 控制结构、块及复合语句    6.2 条件    6.2.1 if/else    6.2.2 if/else if    6.2.3 switch    6.3 循环    6.3.1 while循环    6.3.2 do/while循环    6.3.3 for循环    6.3.4 for/in循环    6.3.5 使用break和continue控制循环    6.3.6 嵌套循环及标签    6.4 应知应会    练习    第7章 函数    7.1 什么是函数    7.1.1 函数声明和调用    7.1.2 返回值    7.1.3 匿名函数变量    7.1.4 闭包    7.1.5 递归    7.1.6 函数是对象    7.2 调试技巧    7.2.1 函数语法    7.2.2 使用try/catch和throw捕捉异常    7.3 应知应会    练习    第8章 对象    8.1 什么是对象    8.1.1 对象及点语法    8.1.2 使用构造函数创建对象    8.1.3 对象的属性    8.1.4 对象的方法    8.2 类和用户自定义函数    8.2.1 什么是类    8.2.2 什么是this   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值