ECMAScript Array 数组

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() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。

 var mm = new Array(2);
 mm[0] = "00";
 mm[1] = "02";
 mm[2] = "01";
 var aa = new Array(10);
 document.write(aa.concat(mm))

检测数组                                        

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)

。。。。。。。。

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

时间: 2024-08-04 13:42:27

ECMAScript Array 数组的相关文章

JavaScript中的Array数组详解

ECMAScript中的数组与其他多数语言中的数组有着相当大的区别,虽然数组都是数据的有序列表,但是与其他语言不同的是,ECMAScript数组的每一项可以保存任何类型的数据.也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象,而且ECMAScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据. 数组的创建 创建数组的基本方式有两种,第一种是使用Array构造函数. var arr = new Array(); 如果预先知道数组要保存

数据类型总结——Array(数组类型)

原文 简书原文:https://www.jianshu.com/p/1e4425383a65 大纲 前言 1.Array数组类型的相关概念 2.创建数组的基本方式有两种 3.检测某个变量是否是数组的方式 4.数组的遍历:for...in语句 5.数组的常用方法 前言 数据类型是每一种语言都需要掌握的内容,掌握每一种数据类型的使用是掌握这门语言必不可少的.而我也对数据类型写了一系列的博客,其中包含了对某一数据类型的概念的认识和理解以及常使用的方法.以下就是我对Array类型的一些认识和理解,希望能

PHP-Manual的学习----【语言参考】----【类型】-----【array数组】

1.Array 数组  PHP 中的 数组 实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性.由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的. 解释这些结构超出了本手册的范围,但对于每种结构至少会提供一个例子.要得到这些结构的更多信息,建议参考有关此广阔主题的其它著作. 2.语法:定义数组 array()  可以用 ar

JS中Array数组的三大属性用法

Array数组主要有3大属性,它们分别是length属性.prototype属性和constructor属性. JS操作Array数组的方法及属性 本文总结了Array数组的3个属性,length属性.prototype属性.constructor属性使用,并附注Array数组对象的8个分类及多个方法使用,具体如下: 对象的3个属性 1.length属性 length属性 Length属性表示数组的长度,即其中元素的个数.因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-

Array(数组)的使用

方法 说明 Concat() 连接2个或多个数组,并返回结果 Push() 向数组末尾添加一个或多个元素,并返回新的长度 Reverse() 颠倒数组中元素的顺序 Sort() 对数组的元素进行排序 Slice() 从某个已有的数组返回数组选定的元素 toString() 把数组转换成字符串 Join() 连接 toLocaleString() 把数组转换为本地字符串,并返回结果 <script type="text/javascript" language="java

Java Script基础(八) Array数组对象

Java Script基础(八) Array数组对象 一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法: join():把数组中的所有元素放入一个字符串中,通过分隔符进行分隔. sort():对数组元素进行排序. 1.创建数组 语法: var a1 = new Array();           //创建一个数组,长度为0: var a2 = 

js-清空array数组

1.splice:删除元素并添加新元素,直接对数组进行修改,返回含有被删除元素的数组. arrayObject.splice(index,howmany,element1,.....,elementX) index:必选,规定从何处添加/删除元素. howmany:必选,规定应该删除多少元素.未规定此参数,则删除从 index 开始到原数组结尾的所有元素. element1:可选,规定要添加到数组的新元素. Js代码    <script type ="text/javascript&qu

js基础,Array 数组对象、BOM 浏览器对象模型

Array 数组对象 定义数组的 3种方式 var week = new Array(); var week = new Array(‘星期一’ , ‘星期二, ‘星期三’); var week = (‘星期一’ , ‘星期二, ‘星期三’); 常用方法: 获取数组的长度 .length: alert(week.length); 获取数组下标所对应的值: alert(week[0]); 数组元素添加: 将一个或多个新元素添加到数组结尾,并返回数组新长度 var week_len = week.p

Swift中实现Array数组和NSArray数组的相互转换与遍历

Array是Swift中的数组数据类型.而NSArray是OC中的数组数据类型.两者有差别有联系.在Swift中有时候难免会使用到OC中的一些东西.今天我们就来Swift中使用NSArray和Array,而且进行转化. (1)声明一个Array数组.并进行遍历.代码例如以下: let stringArray: Array<String> = ["10", "20","30","40","50"]