码迷,mamicode.com
首页 > 编程语言 > 详细

ECMAScript Array 数组

时间:2014-10-17 18:31:43      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   使用   java   

 

 

ECMAScript Array                       

 

自我总结一下ECMA的数组吧,总感觉学的乱七八糟的,什么都知道,又好像什么都不知道一样!

最基本就是Array的创建、新增、删除。。。代码吧

 1 <script type="text/javascript">
 
 6 var onUnload = function(){
 7 alert("你确定要离开此界面么?");
 8 }
 9 
10 var ary = new Array{"aa","bb","cc"};
11 for(aaa in ary){
12 document.write(aaa+"---");
13 document.write("");
14 }
15 
16 
17 var A= {};
18 alert(A);
19 
20 
21 </script>
22 
23 
24 <script>
25 var ary = new Array(3);
26 ary[0] ="1";
27 ary[1] ="1";
28 ary[2] ="1";
29 ary[3] ="1";
30 ary[4] ="1"; // Array(3) 长度为3 而不是上限,如果超过三个,则默认给Arrayl里面Push 进去
31 //alert(ary);
32 
33 
34 var newa = new Array(1,2,2); ///// 不能使用var a = new Array(,,,);
35 
36 // alert(newa.length);
37 //////////////////////
38 
39 var s = new Array("aa","a","aaa");
40 s[2] = "sfsdf";
41 // alert(s);
42 
43 s[4] = "four";
44 
45 // alert(s); // 新增s[4]
46 
47 s.length = 2;
48 // alert(s[4]); // undefined length 属性不是只读属性,相当于截取length位
49 
50 s.unshift("add"); // 往数组第0位添加数据
51 
52 s.push("push"); // 往数组末尾添加数据
53 
54 s.splice("splice",5); // 将数据添加至数组的第n位置 
71 var arr = new Array(3)
72 arr[0] = "George"
73 arr[1] = "John"
74 arr[2] = "Thomas"
75 
76 var arr2 = new Array(3)
77 arr2[0] = "James"
78 arr2[1] = "Adrew"
79 arr2[2] = "Martin"
80 
81 var mm = new Array(2);
82 mm[0] = "00";
83 mm[1] = "02";
84 mm[2] = "01";
85 mm[3] = "03";
86 alert(mm);
87 var aa = new Array(100);
88 document.write(aa.concat(mm))
95 </script>
96 
97  

 

concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。

 

bubuko.com,布布扣
 var mm = new Array(2);
 mm[0] = "00";
 mm[1] = "02";
 mm[2] = "01";
 var aa = new Array(10);
 document.write(aa.concat(mm))
View Code

检测数组                                        

instanceof

typeof

constructor

alert(typeof(aa));  //Object
alert(aa instanceof Array);  //true

alert(aa.constructor == Array); // true

 

 

转换方法                                         

所有对象都有toLocaleString()、toString()和valueof()方法,

  toString  

其中调用数组的toString方法会返回由数组中每个值的字符串形式拼接而成的一个,以逗号相隔的字符串,代码吧

<script type="text/javascript">
var arr = new Array(1,2,3);
alert(arr);

alert(arr[1]);
alert(typeof(arr)); //Object
alert(arr instanceof Array);  //true
alert(arr instanceof String);  //false  转换前不是String

// toString
alert(typeof(arr.toString()));  //String
</script>

  valueOf  

相比toString而言,valueOf()返回的仍是数组,代码吧

<script type="text/javascript">
var arr = new Array(1,2,3);
alert(arr);

alert(arr[1]);
alert(typeof(arr)); //Object
alert(arr instanceof Array);  //true
alert(arr instanceof String);  //false
//  toString()
alert(typeof(arr.toString()));  //String
// valueOf()
alert(typeof(arr.valueOf()));  //Object  转换后不变
alert(arr instanceof Array);  //true
alert(arr instanceof String);  //false

</script>

如上,显示的调用了toString和valueOf()方法,以便以字符串形式返回,每个值的字符串表示拼接成了一个字符串,中间以逗号分割。

另,调用alert()方法,需要接收字符串参数,所以在后台调用toString()方法,由此会得到与toString相同的结果。

 

  toLocaleSting  

使用toLocaleSting方法时候,调用的结果和前两种结果相同,但也不总是如此。当调用数组的toLocaleString()方法时候,他会创建一个数组值的以逗号分割的字符串。而与前两种不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString方法!还是那句话,代码吧

var str = {
toString:function(){
return "normal";

},
toLocaleString:function(){
return "Locale";
}
 
};

var str1 = {
toString:function(){
return "normal01";

},
toLocaleString:function(){
return "Locale01";
}
 
};

var strs = [str,str1];
// alert(strs);  // normal,normal01

alert("typeof(strs)  :  "+typeof(strs)); //object
alert("typeof(strs.toString())  :  "+typeof(strs.toString()));  //string

alert("typeof(strs.toLocaleString())  :  "+typeof(strs.toLocaleString())); //String
alert("strs.toLocaleString() :  "+strs.toLocaleString()); //locale,local01   调用Locale 而不是默认的toString

创建两个对象str1 str2,分别为每个对象添加方法toString和toLocaleString,并且使两个方法返回不同的值,用于检测是否调用默认的toString。

由strs数组包含此两类对象,alert结果:

alert(strs)本森时候,返回和显示调用toString相同的结果: normal,normal01

alert其type为Object

alert显示调用toString转换的字符串的type时候,返回String

alert 显示调用toLocaleString转换的字符串的type的时候,返回String

alert 显示调用toLocaleString转换的字符串,则得到的是由两个对象内部的toLocaleString方法而得的字符串: locale,locale01,原因是调用了数组每一项的toLocaleString()

 

 

  Join  

数组继承的toLocaleString、toString、valueOf方法,在默认情况下,都会以逗号分割的字符串的形式返回数组项。而如果使用了join方法,则可以使用不同的分隔符号来构建字符串!

join方法,只接受一个参数,即用作分隔符的字符串,并返回包含所有数组项的字符串!

var ww = ["w","x","90"];
document.write(ww.join(‘---‘));   // w---x---90

在使用join方法时候,重现了toString()方法的输出,在传递‘---’的情况下,得到以次分隔符分割的字符串组成的数组值。

另,如果不赋值,或者传入undefined的话,则采取默认!

 

栈方法                                  

 

众所周知、栈是后进先出(LIFO),ECMA提供了一种让数组类似于其他数据结构的方法-- 栈!

是栈的话,那么就有压栈和出栈了,ECMA提供了此两种方法push()和pop!

push可以接受任意数量的参数,并逐个添加至栈的第length位,返回的长度就是len+length+1

pop,则是从数组的末尾移除最后一项,减少数组的length值,并返回移除的项。

var ww = ["w","x","90"];
document.write(ww.join(‘---‘)+"<br />");   


var s = new Array();
var ad = s.push("ww","xx");  //返回位置2
alert(ad);

ad = s.push("1990");   // 返回位置3
alert(ad);

var po = s.pop(); //默认获取最后一项
alert(po); //1990 //返回取得的数组的最后一项的值
alert(s.length); //2

 

队列方法                                                                    

 

队列也不陌生,先进先出(FIFO)

 

。。。。。。。。

矮麻、下班了、回去接着写~~~~~

 

ECMAScript Array 数组

标签:style   blog   http   color   io   os   ar   使用   java   

原文地址:http://www.cnblogs.com/oneMTime/p/4031545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!