2017-5-30引用类型之Aray数组

引用类型之数组

  • javaScript语法中Array类型的特点:1.数组中的每一项可以保存任何数据;2.数组的大小可以动态调整

    • 1.创建数组的两种基本方式:1.使用Array构造函数,2.使用数组字面量表示法

    • 2.在读取和设置数组的值时,要使用方括号并提供相应值基于0的数字索引

    • 3.数组的项数保存在length属性中,这个属性会返回0或者更大的值

    • 4.数组length属性的特点:可以从数组的末尾移出项或向数组中添加新项

    • 5.利用length属性可以方便地在数组末尾添加新项

  • 检测:确定某个对象是不是数组

  • 1.使用instanceof操作符检测结果

  • 2.在全局环境中确定某个值到底是不是数组

  • 栈是一种后进先出的数据结构,也就是最新添加的项最早移除,而栈中项的插入(叫做推入)和移除(叫做弹出)

  • 只发生在一个位置栈的顶部,并为数组提供了push()和pop()方法,以便实现类似栈的行为

  • 1.push()方法可以接受任意的数量的参数,把它们逐个添加到数组末尾,并返回数组的长度

  • 2.pop()方法从数组末尾移出最后一项,减少数组的length,并返回数组的项;

  • 所有对象都具有toLocaleString(),toString()和valueOf()方法

  • 队列方法

    • 队列数据结构访问的规则是:先进先出.队列在列表末端添加项从列表前端移出项

    • 模拟队列方法: shift()方法移出数组中的第一个项并返回该项,同时将数组长度减1

    • unshift()方法:可以在数组前端添加任意个项并返回新数组的长度

  1. /* 
  2. *----------------------------------------------5.2Array类型------------------------------- 
  3. * javaScript语法中Array类型的特点:1.数组中的每一项可以保存任何数据;2.数组的大小可以动态调整 
  4. * 1.创建数组的两种基本方式:1.使用Array构造函数,2.使用数组字面量表示法 
  5. * 2.在读取和设置数组的值时,要使用方括号并提供相应值基于0的数字索引 
  6. * 3.数组的项数保存在length属性中,这个属性会返回0或者更大的值 
  7. * 4.数组length属性的特点:可以从数组的末尾移出项或向数组中添加新项 
  8. * 5.利用length属性可以方便地在数组末尾添加新项 
  9. * 
  10. * *
  11. //1.1使用Array构造函数创建数组 
  12. var createArray = new Array(); 
  13. var createArray = new Array(20);//给构造函数传递项目数量,该数量就是array的length属性 
  14. var createArray = new Array("水浒传","西游记","三国演义","红楼梦");//向Array构造函数传递数组应该包含的项,创建一个包含3个字符串值得数组 
  15. var createArray = Array();//省略new操作符也同样可以创建数组 
  16. //1.2 使用数组字面量表示法,数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开; 
  17. var colors = ["red","blue","yellow","black","green"];//创建一个包含了5个字符串的数组 
  18. var colors = []; //创建一个空数组 
  19. var colors = [1,2];//不要这样!创建一个包含2或3个项,且值分别是:1,2,undefined 
  20. var colors = [,,,,,];//不要这样!创建H一个包含5或6个项,且值是undefined 
  21. //2.读取和设置数组的值时,要使用方括号并提供相应值基于0的数组索引 
  22. var colors = ["blue","red","green"]; 
  23. console.log(colors[1]);//red 
  24. colors[0] = "black"; //修改数组中第一项的值 
  25. console.log(colors[0]); 
  26. colors[3] = "yellow";//在数组中新增一项 
  27. console.log(colors.length); 
  28. //3.数组的项数会保存在length属性中,这个属性会返回0或者更大的值 
  29. var colors = ["red","blue","yellow"]; //创建一个只包含3个项的数组 
  30. var student = []; //创建一个空数组 
  31. console.log(colors.length); //3 
  32. console.log(student.length); //0 
  33. //4.数组length属性可以向数组的末尾移出项或向数组中添加新项 
  34. var colors = ["red","blue","black"]; 
  35. colors.length = 2;//移出了数组中末尾一项; 
  36. console.log(colors[2]);//undefined 
  37.  
  38. colors.length = 5;//将length的属性设置为大于数组项数的值,则新增的每一项都会取得undefined值 
  39. console.log(colors[4]); //undefined 
  40. //5.利用length属性在末尾添加新项 
  41. var student = ["张三","李四","王五"]; 
  42. student[student.length] = "武松"
  43. student[student.length] = "宋江"
  44. console.log(student); //["张三", "李四", "王五", "武松", "宋江"
  45.  
  46. /* 
  47. * ***********************5.2.1 检测数组************************ 
  48. * 检测:确定某个对象是不是数组 
  49. * 1.使用instanceof操作符检测结果 
  50. * 2.在全局环境中确定某个值到底是不是数组 
  51. * *
  52. //1.使用instanceof操作符检测结果 
  53. if (value instanceof Array){ 
  54. //对数组执行某些操作 

  55. //2.在全局环境中确定某个值到底是不是数组 
  56. if(Array.isArray(value)){ 
  57. //对数组执行某些操作 

  58.  
  59. /* 
  60. * ********************5.2 转换方法********************* 
  61. *所有对象都具有toLocaleString(),toString()和valueOf()方法 
  62. * 
  63. * *
  64. var colors = ["red","blue","yellow"]; 
  65. console.log(colors.toString());//red,blue,yellow 表示返回数组的字符串,每个值得字符串表示拼接成一个字符串 
  66. console.log(colors.valueOf());//["red", "blue", "yellow"
  67. console.log(colors);//["red", "blue", "yellow"
  68. /* 
  69. * ****************************5.2.3 栈方法******************** 
  70. * 栈是一种后进先出的数据结构,也就是最新添加的项最早移除,而栈中项的插入(叫做推入)和移除(叫做弹出) 
  71. * 只发生在一个位置栈的顶部,并为数组提供了push()和pop()方法,以便实现类似栈的行为 
  72. * 1.push()方法可以接受任意的数量的参数,把它们逐个添加到数组末尾,并返回数组的长度 
  73. * 2.pop()方法从数组末尾移出最后一项,减少数组的length,并返回数组的项; 
  74. * 
  75. * *
  76. //1.push()方法可以接受任何数量的参数,把它们逐个添加到数组末尾,并返回数组的长度 
  77. var colors = new Array();//创建一个数组 
  78. var count = colors.push("red","blue");//向数组中推入这两项 
  79. console.log(count);//2 表示返回数组的长度 
  80. console.log(colors); //["red", "blue"
  81. var count = colors.push("black"); //继续推入另一项 
  82. console.log(count); //3 
  83. console.log(colors);//["red", "blue", "black"
  84.  
  85. //2.pop()方法从数组末尾移除最后一项,减少数组的length,并返回数组的项数 
  86. var colors = ["red","blue","yellow"]; 
  87. var item = colors.pop();//取出最后一项 
  88. console.log(item);//yellow 
  89. console.log(colors);//["red", "blue"
  90.  
  91. /* 
  92. * ************************5.2.4队列方法*************** 
  93. * 队列数据结构访问的规则是:先进先出.队列在列表末端添加项从列表前端移出项 
  94. * 模拟队列方法:shift()方法移出数组中的第一个项并返回该项,同时将数组长度减1 
  95. * unshift()方法:可以在数组前端添加任意个项并返回新数组的长度 
  96. * *
  97. //1.模拟队列方法shift()方法 
  98. var colors = new Array(); 
  99. var count = colors.push("red","blue");//向数组中推入两项 
  100. console.log(colors,count);//["red", "blue"] 2 
  101. var item = colors.shift(); 
  102. console.log(colors,item,colors.length);//["blue"] "red"
  103.  
  104. //unshift方法 
  105. var colors = new Array(); 
  106. var count = colors.unshift("red","green"); 
  107. console.log(colors,count); //["red", "green"] 2 
  108. /* 
  109. * *************************5.2.5重排序方法******************** 
  110. * 1.reverse()方法反转数组项的顺序 
  111. * 2.sort()方法按升序排列数组项 
  112. * *
  113. //1.reverse()反转数组项的顺序 
  114. var student = ["武松","宋江","鲁智深"]; 
  115. student.reverse();//反转了数组的顺序 
  116. console.log(student);//["鲁智深", "宋江", "武松"
  117. //2.sort()方法按升序排列数组项 
  118. var values = [11,2,3,24,5,6]; 
  119. values.sort(); //[11, 2, 24, 3, 5, 6] 
  120. //比较函数的说明:如果两个函数参数a,b;a>b则返回一个负数,a<b则返回一个正数,a=b则返回一个0;(从大到小的比较规则) 
  121. function compare(value1,value2) { 
  122. if(value1<value2){ 
  123. return -1; //在之前 
  124. } else if(value1 > value2){ 
  125. return 1; //在之后 
  126. }else { 
  127. return 0; //相等 


  128.  
  129. values.sort(compare);// 
  130. values.sort( 
  131. function (a,b){ 
  132. return a-b;//升序 

  133. ) ; 
  134. // 
  135.  
  136. values.sort( 
  137. function (a,b){ 
  138. return b-a;//降序 


  139.  
  140. // 
  141. var values = [11,2,3,24,5,6]; 
  142. function compare(value1,value2){ 
  143. return value2 -value1; 

  144. values.sort(compare) 
posted @ 2017-05-31 07:57  shuiyaodongwu  阅读(178)  评论(0编辑  收藏  举报