Asp.net AJAX JavaScript 基本类型扩展(1)——Array类型及其扩展

参考:
JScript  语言参考
http://msdn2.microsoft.com/en-us/library/f0eay1h3.aspx
Asp.net AJAX 在线文档

http://www.asp.net/AJAX/Documentation/Live/ClientReference/Global/JavascriptTypeExtensions/arrayTypeExt/default.aspx

Asp.net AJAX JavaScript Array类型扩展

add 方法
 添加一个元素到Array数组的最后。

例:
var a = ['a', 'b', 'c', 'd'];
Array.add(a, 'e');
// View the results: "abcde"
alert(a.toString());
 
addRange 方法
 复制指定Array数组的元素到到另一个制定的Array数组的最后。

例:
var a = ['a', 'b', 'c', 'd'];
var b = ['f', 'g','h'];
Array.addRange(a, b);
// View the results: "abcdefgh"
alert(a.toString());

clear 方法
 清除指定Array数组的所有元素。

例:
Array.clear(array);
 
clone 方法
 克隆指定Array数组

例:
var a = ['a', 'b', 'c', 'd'];
var b = Array.clone(a);
// View the results: "abcd"
alert(b.toString());
 
contains 方法
 判断指定元素是否在

例:
var a = ['red', 'green', 'blue', 'yellow'];
var b = Array.contains(a, "red");
// View the results: "true"
alert(b.toString());
 
dequeue 方法
 返回指定数组的第一个元素并从数组中移除本元素。

例:
var myArray = [];
var result = "";
Array.add(myArray, 'a');
Array.add(myArray, 'b');
Array.add(myArray, 'c');
Array.add(myArray, 'd');
result = Array.dequeue(myArray);
// View the results: "b,c,d"
alert("Dequeue result: " + result + "myArray: " + myArray.toString());

enqueue 方法
 添加一个元素到Array数组的最后。可以用add方法代替。
 说明:这个方法客户端提供支持但是不建议直接在代码中试用此方法。也就是说用add而不是enqueue。

 
forEach 方法
 对Array数组内的所有元素进行一次指定方法遍历。

例:
var a = ['a', 'b', 'c', 'd'];
a[5] = 'e';
var result = '';

function appendToString(element, index, array) {
    // "this" is the context parameter, i.e. '|'.
    result += element + this + index + ',';
}
Array.forEach(a, appendToString, '|');
// View the results: a|0,b|1,c|2,d|3,e|5,
alert(result);

indexOf 方法
 搜索指定元素在Array数组中的索引位

例:
var a = ['red', 'blue', 'green', 'blue'];
var myFirstIndex = Array.indexOf(a, "blue");
// View the results: "1"
alert("myFirstIndex: " + myFirstIndex);
var mySecondIndex = Array.indexOf(a, "blue", (myFirstIndex + 1) );
// View the results: "3"
alert("mySecondIndex: " + mySecondIndex);
 
insert 方法
 在指定索引位插入指定元素

例:
var a = ['a', 'b', 'd', 'e'];
Array.insert(a, 2, 'c');
// View the results: "a,b,c,d,e"
alert(a.toString());
 
parse 方法
 通过string字符串创建Array元素。分隔符位半角逗号“,”
 
remove 方法
 从Array数组中移除指定元素。
 
removeAt 方法
 从Array数组中移除指定索引位的元素

例:
var a = ['a', 'b', 'c', 'd', 'e'];
Array.remove(a, 'c');
// View the results: "a,b,d,e"
alert(a);
Array.removeAt(a, 2);
 // View the results: "a,b,e"
alert(a);

 

Array基本类型

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 数组为解析数组,也就是尽管可以分配多个元素给一个数组,但实际上只有包含数据的元素才存在。这减少了数组使用的内

存数量。

属性
constructor 属性 | length 属性 | prototype 属性

constructor 属性
表示创建对象的函数。

object.constructor

必需的 object是对象或函数的名称。

说明
constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor

属性保存了对构造特定对象实例的函数的引用。 例如:

x = new String("Hi");
if (x.constructor == String)
      // 进行处理(条件为真)。

function MyFunc {
   // 函数体。
}

y = new MyFunc;
if (y.constructor == MyFunc)
      // 进行处理(条件为真)。

length 属性 (Array)
返回一个整数值,这个整数比数组中所定义的最高位元素的下标大 1。

numVar = arrayObj.length

参数
numVar

必选项。任意数值。

arrayObj

必选项。 任意 Array 对象。

说明
因为一个数组中的元素并不一定是连续的,所以 length 属性也并不一定就等于数组中的元素个数。例如,在下面的数组定义

中,my_array.length 中就包含 7,而不是 2:

var my_array = new Array( );
my_array[0] = "Test";
my_array[6] = "Another Test";
如果 length 属性被赋予了一个比原先值小的数值,那么数组就被截断,所有数组下标等于或者大于 length 属性的新值的元素都会被丢失

如果 length 属性被赋予了一个比原先值大的数值,那么数组就被扩展,且所有新建元素都被赋值为 undefined。

下面这个例子说明了 length 属性的用法:

function LengthDemo(){
   var a;
   a = new Array(0,1,2,3,4);
   return(a.length);
}

prototype 属性
返回对象类型原型的引用。

objectName.prototype

objectName 参数是对象的名称。

说明
用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。

例如,要为 Array 对象添加返回数组中最大元素值的方法。 要完成这一点,声明该函数,将它加入 Array.prototype, 并使用它。

function array_max( ){
   var i, max = this[0];
   for (i = 1; i < this.length; i++)
   {
   if (max < this[i])
   max = this[i];
   }
   return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );
该代码执行后,y 保存数组 x 中的最大值,或说 6。

所有 JScript 固有对象都有只读的 prototype 属性。可以象该例中那样为原型添加功能,但该对象不能被赋予不同的原型。然而,用户定

义的对象可以被赋给新的原型。

方法
concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法 | slice 方法 | sort 方法 | splice 方法 |

toString 方法 | unshift 方法 | valueOf 方法

concat 方法 (Array)
返回一个新数组,这个新数组是由两个或更多数组组合而成的。

array1.concat([item1[, item2[, . . . [, itemN]]]])

参数
array1

必选项。其他所有数组要进行连接的 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);
}

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);
}

pop 方法
移除数组中的最后一个元素并返回该元素。

arrayObj.pop( )

必选的 arrayObj 引用是一个 Array 对象。

说明
如果该数组为空,那么将返回 undefined。

push 方法
将新元素添加到一个数组中,并返回数组的新长度值。

arrayObj.push([item1 [item2 [. . . [itemN ]]]])

参数
arrayObj

必选项。一个 Array 对象。

item, item2,. . . itemN

可选项。该 Array 的新元素。

说明
push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数

组中的元素,请使用 concat 方法。

reverse 方法
返回一个元素顺序被反转的 Array 对象。

arrayObj.reverse( )

必选项 arrayObj 参数为 Array 对象。

说明
reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。

如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

示例
下面这个例子说明了 reverse 方法的用法:

function ReverseDemo(){
   var a, l;                  // 声明变量。
   a = new Array(0,1,2,3,4);  // 创建数组并赋值。
   l = a.reverse();           // 反转数组的内容。
   return(l);                 // 返回结果数组。
}

shift 方法
移除数组中的第一个元素并返回该元素。

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)

sort 方法
返回一个元素已经进行了排序的 Array 对象。

arrayobj.sort(sortfunction)

参数
arrayObj

必选项。任意 Array 对象。

sortFunction

可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

说明
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
示例
下面这个例子说明了 sort 方法的用法:

function SortDemo(){
   var a, l;                       // 声明变量。
   a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
   l = a.sort();                   // 排序数组。
   return(l);                      // 返回排序的数组。
}

splice 方法
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

参数
arrayObj

必选项。一个 Array 对象。

start

必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。

deleteCount

必选项。要移除的元素的个数。

item1, item2,. . .,itemN

必选项。要在所移除元素的位置上插入的新元素。

说明
splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新

Array 对象。

toString 方法
返回对象的字符串表示。

objectname.toString([radix])

参数
objectname

必选项。要得到字符串表示的对象。

radix

可选项。指定将数字值转换为字符串时的进制。

说明
toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型:

对象 操作
Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date 返回日期的文字表示法。
Error 返回一个包含相关错误消息的字符串。
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:
function functionname( ) { [native code] }
 
Number 返回数字的文字表示。
String 返回 String 对象的值。
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。


示例
下面的例子演示了使用带有 radix 参数的 toString 方法。上面所示函数的返回值是一个 Radix 转换表。

function CreateRadixTable (){
   var s, s1, s2, s3, x;                    // 声明变量。
   s = "Hex    Dec   Bin \n";               // 创建表头。
   for (x = 0; x < 16; x++)                 // 根据所示值的
   {                                        // 数字建立
      switch(x)                             // 表尺寸。
      {                                     // 设置栏目间空间。
         case 0 :
            s1 = "      ";
            s2 = "    ";
            s3 = "   ";
            break;
         case 1 :
            s1 = "      ";
            s2 = "    ";
            s3 = "   ";
            break;
         case 2 :
            s3 = "  ";
            break;
         case 3 :
            s3 = "  ";
            break;
         case 4 :
            s3 = " ";
            break;
         case 5 :
            s3 = " ";
            break;
         case 6 :
            s3 = " ";
            break;
         case 7 :
            s3 = " ";
            break;
         case 8 :
            s3 = "" ;
            break;
         case 9 :
            s3 = "";
            break;
         default:
            s1 = "     ";
            s2 = "";
            s3 = "    ";
      }                                     // 转换为十六进制、十进制、二进制。
      s += " " + x.toString(16) + s1 + x.toString(10)
      s +=  s2 + s3 + x.toString(2)+ "\n";
     
   }
   return(s);                               // 返回整个 radix 表。
}

unshift 方法
将指定的元素插入数组开始位置并返回该数组。

arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]])

参数
arrayObj

必选项。一个 Array 对象。

item1, item2,. . .,itemN

可选项。将插入到该 Array 开始部分的元素。

说明
unshift 方法将这些元素插入到一个数组的开始部分,所以这些元素将以参数序列中的次序出现在数组中。

valueOf 方法
返回指定对象的原始值。

object.valueOf( )

必选项 object 参数是任意固有 JScript 对象。

说明
每个 JScript 固有对象的 valueOf 方法定义不同。

对象 返回值
Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同。
Boolean Boolean 值。
Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。
Function 函数本身。
Number 数字值。
Object 对象本身。这是默认情况。
String 字符串值。


Math 和 Error 对象没有 valueOf 方法。

你可能感兴趣的:(JavaScript)