数组的概念及定义
一组一般情况下相同类型的数据。
除了 Object 类型之外,Array 类型是ECMAScript 最常用的类型。而且 ECMAScript 中的 Array 类型和其他语言中的数组有着很大的区别。 虽然数组都是有序排列, 但 ECMAScript 中的数组每个元素可以保存任何类型。ECMAScript 中数组的大小也是可以调整的。
数组的创建方式(构造函数和JSON)
第一种是 new 运算符(构造函数);
第二种是字面量(JSON);
注意:给构造函数传递一个值也可以创建数组。如果传递的是数值,则会按照该数值创建包含 给定项数的数组;而如果传递的是其他类型的参数,则会创建包含那个值的只有一项的数组。
数组的操作
使用索引下标来读取数组的值--下标是固定的,从0开始
静态赋值/动态赋值(动态的,无需指定大小)
数组的length属性 ,代表长度
数组的 length 属性不只是只读的。通过设置这个属性,可以从数组的末尾移除项或向数 组中添加新项。
遍历访问数组 普通for循环和 for-in循环(结合数组或对象)
约定:所有的点操作可以改写成中括号的形式: obj.name <===> obj[name]
检测数组:Array.isArray() 方法
Array.isArray():确定括号中的某个值到底是不是数组
数组的方法
1、push() 方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
2、pop() 方法则从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
3、unshift()方法 能够在数组前端添加任意个项并返回新数组的长度。
4、shift() 方法能够移除数组中的第一个项并返回该项,同时将数组长度减 1。
5、reverse() 方法会反转数组项的顺序。
6、sort() 方法按字母表升序排列数组项。
/*var a=prompt();
var b=prompt();
var c=prompt();
var arr=[a,b,c];
alert(arr.sort(function(a,b){
return a-b;
}));
注意:如果按照其他方式而非字母表顺序进行数组排列,必须给sort方法传递一个比较函数(做参数)。
reverse() 和 sort() 方法的返回值是经过排序之后的数组,即修改原数组。
7、join()方法将数组中的所有元素都转化为字符串并连接在一起,返回最后生成的字符串。参数为数组项之间的连接符号。
/*var arr=[1,4,1117,2,5,8,3,6,9];
//alert(arr.join('#'));//转换成字符串
8、concat() 方法可以基于当前数组中的所有项创建一个新数组。具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat() 方法传递参数的情况下,它只是复制当前数组并返回副本。如果传递给 concat() 方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。如果传递的值不是数组,这些值就会被简单地添加到结果数组的末尾。
/*alert(arr.concat(arr1,arr2,'hehe'));//返回新数组*/
9、slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。 可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。
10、splice() 方法,对数组进行删除、插入、替换
var arr=['a','b','c','d','e','f','g'];//改变原数组
//alert(arr.slice(2));//从2开始截取一直到最后,2指的是下标
//alert(arr.slice(2,5));//不包括5的位置
//alert(arr.slice(-4,-1));//负数反向数,-1开始,注意数字的顺序
//alert(arr.slice(5,-1));//f
//alert(arr.slice(5,-2));//
//删除、插入、替换
//alert(arr.splice(2));
/*alert(arr.splice(2,1,'ok'));//替换
alert(arr);*/
整数数组/字符串数组/对象数组/二维数组