一、创建数组的方式:

1.定义并赋值

var str = ['java', 'php', 'c++', 'c#', 'perl', 'vb', 'html', 'css'];

2.用{}定义后赋值:

var array = {};//定义一个数组
   array[0] = "Tom";
   array[1] = "Male";
   array[2] = "123456@qq.com";

  数组的下标也可以这样:

array['name'] = "Tom";
   array['sex'] = "Male";
   array['mail'] = "123456@qq.com";

3.使用new Array()定义:

(1).

var a = new Array(10);
     定义长度为10的数组,此时为a已经开辟了内存空间,用数组名称加 [下标] 来调用。

(2).

var a = new Array();
     a[0] = 10;
     a[1] = "Tom";
     a[2] = 12.6;

定义一个可变数组,并进行赋值。数组的赋值还可以使用push()方法,这样可以避免使用下标的麻烦:

a.push(10);

a.push("Tom");

a.push(12.6);

 (3).

var a = new Array(1, 2, 3, 4, 5);
     var b = [1, 2, 3, 4, 5];
    a 和 b 都是数组,只不过b用了隐性声明,创建了另一个实例,此时如果用alert(a==b)将弹出false。

(4).

数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象。
Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能。

数组里面可以包含对象,所以可以把数组里面的某个元素再声明为数组,例如
     var a = new Array();
     a[0] = new Array();
     a[0][0] = 1;
     alert(a[0][0]); //弹出 1

声明的时候赋值
     var a = new Array([1,2,3], [4,5,6], [7,8,9]);
     var b = [[1,2,3], [4,5,6], [7,8,9]];

二、数组的操作:

1.通过数组[下标]来读写数组的元素:

如:a[0] = 10;
        a[1] = "Tom";
        a[2] = 12.6;

下标的范围是 0 – (23(上标2) -1),当下标是负数、浮点甚至布尔值的时候,数组会自动转换为对象类型。

如:
   var b = new Array();
   b[2.2]  = "XXXXX";
   alert(b[2.2]); //-> XXXXX

 2.通过push(),pop()方法读写元素:

(1).push

往数组后面添加数组,并返回数组新长度
    var a =    ["aa","bb","cc"];
    document.write(a.push("dd"));    // -> 4

(2).pop

删除数组最后一个元素,并返回该元素
     var a =    ["aa","bb","cc"];
     document.write(a.pop());    // -> cc

  3.数组的循环:

(1).for循环:

var a = [1,2,3,4,5,6];
     for(var i =0; i<a.length; i++){
          alert(a[i]);
     }

(2).foreach循环:

var a = [1,2,3,4,5,6];
      for(var e in a){
          alert(e);
       }
   还是依次弹出1至6,for…in是历遍对象(数组是特殊的对象)对象,用在数组上,因为数组没有属性名,所以直接输出值,这结构语句用在对象上,例如下面
     var a = {x:1,y:2,z:3};
     for(var e in a){
       alert(e    + ":" + a[e]);
     }

此时e取到的是属性名,即 x、y、x,而要取得值,则采用 数组名[属性],所以 a[e] 等同于 a[“x”]、a[“y”]、a[“z”]。

 4.将数组转换为字符串:

(1).join("分隔符")

用指定间隔符连起来,把数组转为字符串
     例:
       var a = ['a','b','c','d','e','f','g'];
       alert(a.join(",")); // -> a,b,c,d,e,f,g
    需要注意的是只转换一维数组里面,如果数组里面还有数组,将不是采用join指定的字符串接,而是采用默认的toString()。

(2).toString()

把数组转为字符串,不只数组,所有对象均可使用该方法
    var a = [5,6,7,8,9,["A","BB"],100];
    document.write(a.toString());    // -> 5,6,7,8,9,A,BB,100

(3)valueOf
    根据不同对象返回不同原始值,用于输出的话跟toString()差不多,但是toString()是返回string类型,而valueOf()是返回原对象类型。
    var a = [1,2,3,[4,5,6,[7,8,9]]];
   document.write(a.valueOf());    // -> 1,2,3,4,5,6,7,8,9

 5.使用slice返回数组片段 

var a = ['a','b','c','d','e','f','g'];
    alert(a.slice(1,2)); // -> b
    alert(a.slice(2));    // -> c,d,e,f,g
    alert(a.slice(-4));   // -> d,e,f,g
    alert(a.slice(-2,-6));    // -> 空

a.slice(1,2),从下标为1开始,到下标为2之间的数,注意并不包括下标为2的元素
    如果只有一个参数,则默认到数组最后。
   -4是表示倒数第4个元素,所以返回倒数的四个元素。
  alert(a.slice(-2,-6))从倒数第2开始,因为是往后截取,所以显然取不到前面的元素,所以返回空数组,如果改成 a.slice(-6,-2) 则返回b,c,d,e。

最新文章

  1. js attribute 和 jquery attr 方法
  2. Template function 函数模板用法
  3. SpringMVC注入Spring的bean
  4. PHP如何通过Http Post请求发送Json对象数据?
  5. C# winform窗体设计-查询单个值
  6. C#中的延迟加载
  7. Android开源框架——Picasso
  8. Html之初体验
  9. MyEclipse中配置自己的JRE和tomcat
  10. XML引入以及与html的区别
  11. DB Query Analyzer 6.03, the most excellent Universal DB Access tools on any Microsoft Windows OS
  12. pandas.DataFrame的pivot()和unstack()实现行转列
  13. VOC2012数据集注解
  14. AHOI2019游记
  15. Ubuntu 15.10 下Scala 操作Redis Cluster
  16. MySql中order by和union all同时使用
  17. robot framework测试数据语法
  18. java返回值是list的时候获取list的参数类型
  19. Leetcode 191.位1的个数 By Python
  20. kibana 显示 @timestamp 时间问题(utc or browser当前时间)自动转换显示

热门文章

  1. 9.12 翻译系列:数据注解特性之ConcurrencyCheck【EF 6 Code-First系列】
  2. SNF快速开发平台MVC-EasyUI3.9之-WebApi跨域处理方案
  3. MVC 打印解决方案--SNF快速开发平台3.1
  4. 这可能由 CredSSP 加密 oracle 修正引起的。
  5. mysql索引hash索引和b-tree索引的区别
  6. ElasticSearch 内存那点事【转】
  7. dom4j string转为xml
  8. 使用UIScrollView 结合 UIImageView 实现图片循环滚动
  9. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring
  10. akka pubsub example