Javascript_3_ Array 객체
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>javascript演示5_ Array 对象</title> </head> <body> <h1>javascript演示5_ Array 对象</h1> <script type="text/javascript" src="a.js"> </script> <script type="text/javascript"> /* * Array 对象 提供对创建任何数据类型的数组的支持。 arrayObj = new Array() arrayObj = new Array([size]) arrayObj = new Array([element0[, element1[, ...[, elementN]]]]) 参数 arrayObj 必选项。要赋值为 Array 对象的变量名。 size 可选项。可选项数组的大小。由于数组的下标是从零开始, 创建的元素的下标将从零到 size -1。 element0,...,elementN 可选项。要放到数组中的元素。 这将创建具有 n + 1 个元素的长度为 n + 1 的数组。 使用该语法时必须有一个以上元素。 说明 创建数组后,能够用 [ ] 符号访问数组单个元素,例如: var my_array = new Array(); for (i = 0; i < 10; i++) { my_array[i] = i; } x = my_array[4]; 由于 Microsoft JScript 中的数组的下标是从零开始的, 前面例子中最后一条语句访问数组的第五个元素。 该元素中保存的值是 4。 如果只向 Array 的构造函数传递了一个参数,而该参数是数字, 则它必须是无符号32位整数(大约40亿)。该值成为数组的大小。 如果该值为数值,但小于0或不为整数,发生运行时错误。 如果传递给 Array 构造函数的是单个值并且不是数值, 设置 length 属性为1,而且唯一的元素值成为单个的传入的参数。 请注意 JScript 数组为解析数组,也就是尽管可以分配多个元素给一个数组, 但实际上只有包含数据的元素才存在。这减少了数组使用的内存数量。 */ array=new Array(); //array1=new Array(size); //array2=new Array(e1,e2,e3); var arr1=[2,4,6,7]; var arr2=["nba","xixi","abc"]; var arr3=["qq","baidu"]; println(arr1.concat(arr2,arr3)); // 2,4,6,7,nba,xixi,abc,qq,baidu println(arr1.concat("mm",arr3)); //2,4,6,7,mm,qq,baidu println(arr1.join()); println(arr1.join(",")); println(arr1.join("-")); //2,4,6,7 //2,4,6,7 //2-4-6-7 function myJoin(arr,separator){ var str=""; for (var i=0; i < arr.length; i++) { if (i!=arr.length-1) { str+=arr[i]+separator; } else{ str+=arr[i]; } } return str; } println(myJoin(arr3,"_")); //Array.prototype.myjoin=myJoin();如果加入原型,就要改用this /* * pop方法:移除数组最后一个元素,并返回该元素!(removeLast) * 如果数组为空,返回undefined * pop 方法 移除数组中的最后一个元素并返回该元素。 arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象。 说明 如果该数组为空,那么将返回 undefined。 * * * push 方法 将新元素添加到一个数组中,并返回数组的新长度值。 arrayObj.push([item1 [item2 [. . . [itemN ]]]]) 参数 arrayObj 必选项。一个 Array 对象。 item, item2,. . . itemN 可选项。该 Array 的新元素。 说明 push 方法将以新元素出现的顺序添加这些元素。 如果参数之一为数组,那么该数组将作为单个元素添加到数组中。 如果要合并两个或多个数组中的元素,请使用 concat 方法。 * * * shift 方法 移除数组中的第一个元素并返回该元素。(removeFirst) arrayObj.shift( ) 必选的 arrayObj 引用是一个 Array 对象。 说明 shift 方法可移除数组中的第一个元素并返回该元素。 * * * slice 方法 (Array) 返回一个数组的一段。 arrayObj.slice(start, [end]) (包含头,不包含尾) 参数 arrayObj 必选项。一个 Array 对象。 start 必选项。arrayObj 中所指定的部分的开始元素是从零开始计算的下标。 end 可选项。arrayObj 中所指定的部分的结束元素是从零开始计算的下标。 说明 slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。 slice 方法一直复制到 end 所指定的元素,但是不包括该元素。 如果 start 为负,将它作为 length + start处理, 此处 length 为数组的长度。如果 end 为负, 就将它作为 length + end 处理,此处 length 为数组的长度。 如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。 如果 end 出现在 start 之前,不复制任何元素到新数组中。 示例 在下面这个例子中,除了最后一个元素之外, myArray 中所有的元素都被复制到 newArray 中: newArray = myArray.slice(0, -1) * * * splice 方法 从一个数组中移除一个或多个元素,如果必要, 在所移除元素的位置上插入新元素,返回所移除的元素。 arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]]) 参数 arrayObj 必选项。一个 Array 对象。 start 必选项。指定从数组中移除元素的开始位置, 这个位置是从 0 开始计算的。 deleteCount 必选项。要移除的元素的个数。 item1, item2,. . .,itemN 必选项。要在所移除元素的位置上插入的新元素。 说明 splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素, 从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。 * * * unshift 方法 将指定的元素插入数组开始位置并返回该数组。(addFirst) arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]]) 参数 arrayObj 必选项。一个 Array 对象。 item1, item2,. . .,itemN 可选项。将插入到该 Array 开始部分的元素。 说明 unshift 方法将这些元素插入到一个数组的开始部分, 所以这些元素将以参数序列中的次序出现在数组中。 * * */ /* * * join 方法 返回字符串值,其中包含了连接到一起的数组的所有元素, 元素由指定的分隔符分隔开来。 arrayObj.join(separator) 参数 arrayObj 必选项。Array 对象。 separator 必选项。是一个 String 对象, 作为最终的 String 对象中对数组元素之间的分隔符。 如果省略了这个参数,那么数组元素之间就用一个逗号来分隔。 说明 如果数组中有元素没有定义或者为 null,将其作为空字符串处理。 示例 下面这个例子说明了 join 方法的用法。 function JoinDemo(){ var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); return(b); } * * * * concat方法:返回一个新数组,由两个或多个数组组合而成 * concat 方法 (Array) 返回一个新数组,这个新数组是由两个或更多数组组合而成的。 array1.concat([item1[, item2[, . . . [, itemN]]]]) 必选项。其他所有数组要进行连接的 Array 对象。 item1,. . ., itemN 可选项。要连接到 array1 末尾的其他项目。 说明 concat 方法返回一个 Array 对象, 其中包含了 array1 和提供的任意其他项目的连接。 要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。 如果某一项为数组,那么添加其内容到 array1 的末尾。 如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。 以下为从源数组复制元素到结果数组: 对于从正被连接到新数组的数组中复制的对象参数, 复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变, 都将引起另一个的改变。 对于连接到新数组的数值或字符串,只复制其值。 一个数组中值有改变并不影响另一个数组中的值。 下面这个例子说明了使用数组时 concat 方法的用法: function ConcatArrayDemo(){ var a, b, c, d; a = new Array(1,2,3); b = "JScript"; c = new Array(42, "VBScript); d = a.concat(b, c); // 返回数组 [1, 2, 3, "JScript", 42, "VBScript"] return(d); } */ //JS用数组模拟队列数据结构 var arr=[]; arr.unshift("1","2","3");//插入数组开头,返回该数组 println(arr);//123 var arr2=[]; arr2.unshift("A"); arr2.unshift("B"); arr2.unshift("C"); println(arr2);//C,B,A因为unshift是插入开头 //pop移除并返回数组中最后一个元素 //与unshift结合,形成队列结构 println(arr2.pop()); println(arr2.pop()); println(arr2.pop());//此时arr2已经为空! //A,B,C arr2.unshift("A"); arr2.unshift("B"); arr2.unshift("C"); println(arr2);//C,B,A因为unshift是插入开头 //结合shift(移除并返回第1个元素),可模拟堆栈结构 println(arr2.shift()); println(arr2.shift()); println(arr2.shift()); //C,B,A //给数组原型加入方法:求最大值 Array.prototype.getMax=function(){ var temp=0; for (var i=0; i < this.length; i++) { if (this[i]>this[temp]) { temp=i; } } return this[temp]; } println(arr1);//2,4,6,7 println(arr1.getMax());//7 //给数组原型加入自定义的打印方法 Array.prototype.toString=function(){ return "【"+this.join(", ")+"】" ; } println(arr1);//【2, 4, 6, 7】 </script> </body> </html>
위는 Javascript_3_ Array 객체의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!