zoukankan      html  css  js  c++  java
  • 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) 
    每天叫醒的不是闹钟,而是梦想
  • 相关阅读:
    四种nlogn排序算法代码
    HDU1421
    HDU1789
    HDU1978
    HDU2059
    HDU2089
    深入理解数组与指针的区别
    存储字节对齐问题
    h5新特性<data*>
    浏览器的标准模式和怪异模式
  • 原文地址:https://www.cnblogs.com/shuiyaodongwu310988929/p/6922441.html
Copyright © 2011-2022 走看看