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

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

时间:2017-05-31 10:15:48      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:mono   length   .sh   play   返回   模拟   order   compare   turn   

引用类型之数组

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

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

标签:mono   length   .sh   play   返回   模拟   order   compare   turn   

原文地址:http://www.cnblogs.com/shuiyaodongwu310988929/p/6922441.html

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