javascript Array 对细介绍

来源:互联网 发布:华为p10移动数据不好使 编辑:程序博客网 时间:2024/05/01 04:20

Array 对象

Array 对象用于在单个的变量中存储多个值。


创建 Array 对象的语法

var tmp = new Array();

//size是期望的数组元素个数

var tmp = new Array(size);

//element..., elementn是参数列表当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值,它的 length 字段也会被设置为参数的个数

new Array(element0, element1, ..., elementn);


Array 对象属性

length:设置或返回数组中元素的数目。


Array 对象方法

concat() 连接两个或更多的数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

    语法:arrayObject.concat(arrayX,arrayX,......,arrayX); //如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组

    实例:var a = [1,2,3]; document.write(a.concat(4,5)); //输出:1,2,3,4,5

             var arr = new Array(3);    var arr2 = new Array(3);

             arr[0] = "George";            arr2[0] = "James";

             arr[1] = "John";                 arr2[1] = "Adrew";

             arr[2] = "Thomas";          arr2[2] = "Martin";

             document.write(arr.concat(arr2)); //输出George,John,Thomas,James,Adrew,Martin


join() 用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的

    语法:arrayObject.join(separator); //可选,指定要使用的分隔符,如果省略该参数,则使用逗号作为分隔符。

    实例:var tmp = new Array(0,1,2);  document.write(tmp.join("|")); //输出0|1|2


pop() 删除数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值,如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值

    语法:arrayObject.pop();

    实例:var tmp = new Array('a','b','c');

             document.write(tmp.pop() + '|' + tmp.length); //输出 c|2

             document.write(tmp.pop() + '|' + tmp.length); //输出 b|1

             document.write(tmp.pop() + '|' + tmp.length); //输出 a|0

             document.write(tmp.pop() + '|' + tmp.length); //输出 undefined|0


push() 把参数顺序添加到数组的尾部,它直接修改数组,而不是创建一个新的数组,push() 方法和 pop() 方法使用数组提供的先进后出栈的功能

    语法:arrayObject.push(newelement1,newelement2,....,newelementX);

    实例:var tmp = new Array('a','b','c'); tmp.push('d','e','f'); document.write(tmp.join() + ',' + tmp.length); //输出 a,b,c,d,e,f,6


shift() 删除数组的第一个元素,把数组长度减 1,并且返回它删除的元素的值,如果数组已经为空,则 shift() 不改变数组,并返回 undefined 值

    语法:arrayObject.shift();

    实例:var tmp = new Array('a','b','c');

             document.write(tmp.shift() + '|' + tmp.length); //输出 a|2

             document.write(tmp.shift() + '|' + tmp.length); //输出 b|1

             document.write(tmp.shift() + '|' + tmp.length); //输出 c|0

             document.write(tmp.shift() + '|' + tmp.length); //输出 undefined|0


unshift() 把参数顺序添加到数组的头部,它直接修改数组,而不是创建一个新的数组,unshift() 方法和 shift() 方法使用数组提供的先进先出队列的功能

    语法:arrayObject.unshift(newelement1,newelement2,....,newelementX);

    实例:var tmp = new Array('a','b','c'); tmp.unshift('d','e','f'); document.write(tmp.join() + ',' + tmp.length); //输出 d,e,f,a,b,c,6


reverse() 用于颠倒数组中元素的顺序

    语法:arrayObject.reverse();

    实例:var tmp = new Array('a','b','c'); tmp.reverse(); document.write(tmp.join()); //输出 c,b,a


slice() 可从已有的数组中返回选定的元素,不会修改原数组,返回一个新的数组,包含从 start 到 end (不包括该元素)的 已有数组 中的元素

    语法:arrayObject.slice();

    实例:var tmp = new Array('a','b','c','d'); var tmp1 = tmp.slice(1,3); document.write(tmp1.join()); //输出 b,c


splice() 删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素,请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改

    语法:arrayObject.splice(index,howmany,element1,.....,elementX); 

              //index:规定从何处添加/删除元素

              //howmany:规定应该删除多少元素

              //element1……elementX:规定要添加到数组的新元素,从 index 所指的下标处开始插入

    实例:var tmp = new Array('a','b','c','d','e','f'); tmp.splice(1); document.write(tmp.join()); //输出 a

             var tmp = new Array('a','b','c','d','e','f'); tmp.splice(1,2); document.write(tmp.join()); //输出 a,d,e,f

             var tmp = new Array('a','b','c','d','e','f'); tmp.splice(1,2,'g','h','i'); document.write(tmp.join()); //输出 a,g,h,i,d,e,f


sort() 调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序,要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

  • 若 a 等于 b,则返回 0。

  • 若 a 大于 b,则返回一个大于 0 的值。

    语法:arrayObject.sort(sortby); //sortby必须是函数

    实例:var tmp = new Array('a','d','c','b','f','e'); tmp.sort(); document.write(tmp.join()); //输出 a,b,c,d,e,f

              function sortby(a,b){
                    return a - b;
              }

             var tmp = new Array('1','5','8','2','6','9'); tmp.sort(sortby); document.write(tmp.join()); //输出 1,2,5,6,8,9

              function sortby(a,b){
                    return b - a;
              }

             var tmp = new Array('1','5','8','2','6','9'); tmp.sort(sortby); document.write(tmp.join()); //输出 9,8,6,5,2,1


toString() 把数组转换为字符串,返回值与没有参数的 join() 方法返回的字符串相同

    语法:arrayObject.toString();

    实例:var tmp = new Array('1','5','8','2','6','9'); tmp.toString(); document.write(tmp); //输出 1,5,8,2,6,9


toLocaleString() 首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串

    语法:arrayObject.toLocaleString();

    实例:var tmp = new Array('1',new Array('5','7','10'),'8','2','6','9'); tmp.toLocaleString(); document.write(tmp); //输出 1,5,7,10,8,2,6,9

toString()和toLocaleString()这两个函数我在测试的时候 输出的结果是一样的,不知道这两个函数有什么区别,不敢乱说 怕误人子弟,希望知道的朋友可以解释一下这两个函数的区别,thanks!
原创粉丝点击