ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_3_ 配列オブジェクト

Javascript_3_ 配列オブジェクト

黄舟
黄舟オリジナル
2017-01-18 16:27:14799ブラウズ

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 中国語 Web サイト (www.php.cn) を参照してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。