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. //1.1使用Array构造函数创建数组 

  11. var createArray = new Array(); 

  12. var createArray = new Array(20);//给构造函数传递项目数量,该数量就是array的length属性 

  13. var createArray = new Array("水浒传","西游记","三国演义","红楼梦");//向Array构造函数传递数组应该包含的项,创建一个包含3个字符串值得数组 

  14. var createArray = Array();//省略new操作符也同样可以创建数组 

  15. //1.2 使用数组字面量表示法,数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开; 

  16. var colors = ["red","blue","yellow","black","green"];//创建一个包含了5个字符串的数组 

  17. var colors = []; //创建一个空数组 

  18. var colors = [1,2];//不要这样!创建一个包含2或3个项,且值分别是:1,2,undefined 

  19. var colors = [,,,,,];//不要这样!创建H一个包含5或6个项,且值是undefined 

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

  21. var colors = ["blue","red","green"]; 

  22. console.log(colors[1]);//red 

  23. colors[0] = "black"; //修改数组中第一项的值 

  24. console.log(colors[0]); 

  25. colors[3] = "yellow";//在数组中新增一项 

  26. console.log(colors.length); 

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

  28. var colors = ["red","blue","yellow"]; //创建一个只包含3个项的数组 

  29. var student = []; //创建一个空数组 

  30. console.log(colors.length); //3 

  31. console.log(student.length); //0 

  32. //4.数组length属性可以向数组的末尾移出项或向数组中添加新项 

  33. var colors = ["red","blue","black"]; 

  34. colors.length = 2;//移出了数组中末尾一项; 

  35. console.log(colors[2]);//undefined 


  36. colors.length = 5;//将length的属性设置为大于数组项数的值,则新增的每一项都会取得undefined值 

  37. console.log(colors[4]); //undefined 

  38. //5.利用length属性在末尾添加新项 

  39. var student = ["张三","李四","王五"]; 

  40. student[student.length] = "武松"; 

  41. student[student.length] = "宋江"; 

  42. console.log(student); //["张三", "李四", "王五", "武松", "宋江"] 


  43. /* 

  44. * ***********************5.2.1 检测数组************************ 

  45. * 检测:确定某个对象是不是数组 

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

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

  48. * */ 

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

  50. if (value instanceof Array){ 

  51. //对数组执行某些操作 



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

  53. if(Array.isArray(value)){ 

  54. //对数组执行某些操作 




  55. /* 

  56. * ********************5.2 转换方法********************* 

  57. *所有对象都具有toLocaleString(),toString()和valueOf()方法 



  58. * */ 

  59. var colors = ["red","blue","yellow"]; 

  60. console.log(colors.toString());//red,blue,yellow 表示返回数组的字符串,每个值得字符串表示拼接成一个字符串 

  61. console.log(colors.valueOf());//["red", "blue", "yellow"] 

  62. console.log(colors);//["red", "blue", "yellow"] 

  63. /* 

  64. * ****************************5.2.3 栈方法******************** 

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

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

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

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



  69. * */ 

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

  71. var colors = new Array();//创建一个数组 

  72. var count = colors.push("red","blue");//向数组中推入这两项 

  73. console.log(count);//2 表示返回数组的长度 

  74. console.log(colors); //["red", "blue"] 

  75. var count = colors.push("black"); //继续推入另一项 

  76. console.log(count); //3 

  77. console.log(colors);//["red", "blue", "black"] 


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

  79. var colors = ["red","blue","yellow"]; 

  80. var item = colors.pop();//取出最后一项 

  81. console.log(item);//yellow 

  82. console.log(colors);//["red", "blue"] 


  83. /* 

  84. * ************************5.2.4队列方法*************** 

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

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

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

  88. * */ 

  89. //1.模拟队列方法shift()方法 

  90. var colors = new Array(); 

  91. var count = colors.push("red","blue");//向数组中推入两项 

  92. console.log(colors,count);//["red", "blue"] 2 

  93. var item = colors.shift(); 

  94. console.log(colors,item,colors.length);//["blue"] "red" 1 


  95. //unshift方法 

  96. var colors = new Array(); 

  97. var count = colors.unshift("red","green"); 

  98. console.log(colors,count); //["red", "green"] 2 

  99. /* 

  100. * *************************5.2.5重排序方法******************** 

  101. * 1.reverse()方法反转数组项的顺序 

  102. * 2.sort()方法按升序排列数组项 

  103. * */ 

  104. //1.reverse()反转数组项的顺序 

  105. var student = ["武松","宋江","鲁智深"]; 

  106. student.reverse();//反转了数组的顺序 

  107. console.log(student);//["鲁智深", "宋江", "武松"] 

  108. //2.sort()方法按升序排列数组项 

  109. var values = [11,2,3,24,5,6]; 

  110. values.sort(); //[11, 2, 24, 3, 5, 6] 

  111. //比较函数的说明:如果两个函数参数a,b;a>b则返回一个负数,a<b则返回一个正数,a=b则返回一个0;(从大到小的比较规则) 

  112. function compare(value1,value2) { 

  113. if(value1<value2){ 

  114. return -1; //在之前 

  115. } else if(value1 > value2){ 

  116. return 1; //在之后 

  117. }else { 

  118. return 0; //相等 






  119. values.sort(compare);// 

  120. values.sort( 

  121. function (a,b){ 

  122. return a-b;//升序 



  123. ) ; 

  124. // 


  125. values.sort( 

  126. function (a,b){ 

  127. return b-a;//降序 






  128. // 

  129. var values = [11,2,3,24,5,6]; 

  130. function compare(value1,value2){ 

  131. return value2 -value1; 



  132. values.sort(compare) 

时间: 2024-10-24 02:53:14

2017-5-30引用类型之Aray数组的相关文章

datetime处理日期和时间(2017.9.30)

1.datetime.now() # 获取当前datetimedatetime.utcnow() 2.datetime(2017, 5, 23, 12, 20) # 用指定日期时间创建datetime 代码如下: from datetime import datetime now=datetime.now() print('当前时间:',now) utcnow=datetime.utcnow() print('世界标准时间:',utcnow) dt=datetime(2017, 5, 23, 1

【谜客帝国】第110届云月(庄若云&amp;月思)合擂谜会(2017.07.30)

 [谜客帝国]第110届云月(庄若云&月思)合擂谜会(2017.07.30) 主持:瓷    计分:手手 1.“接天帆影入残云”(10笔字)蚕/月思 [注:面出陈德永<客居月余归后寄友人>.残云,别解提音.] 2.“西风长笛水边楼”(9笔字)洙/月思 [注:面出张养浩<黄州道中>:长笛,象形“一”.] 3. 河间元琛最豪首(2字铁道线路名)玉昌/月思 [注:典据<洛阳伽蓝记>,“而河间王(元)琛最为豪首”:青海玉树州至西藏昌都市的铁路线称为“玉昌线”.] 4. 

2017.3.4[hihocoder#1403]后缀数组一&#183;重复旋律

好久没发博了. 后缀数组板子题.具体实现就不解释了,hihocoder很良心. http://hihocoder.com/problemset/problem/1403 1 #include<cmath> 2 #include<queue> 3 #include<cstdio> 4 #include<vector> 5 #include<cstdlib> 6 #include<cstring> 7 #include<iostre

2017.6.30 Note

1.运用的知识为JS中字符串到HTML标签的转化:  使用.innerHTML,如:  div.innerHTML = str; 2.主要思路转换:  切记千万不可转牛角尖,转牛角尖只会坏事,要冷静分析每一步,找出每一步的关键点是什么,这样才能极快速的完成项目,如下例中 此例中主要包含3个思路: (1)将字符串数组中包含特定字符的字符串挑选出来,可以使用.indexOf( str ),若是存在此特定字符则其会有索引值即>=0 (2)选出字符串中的特定字符并加以操作,可以使用循环(for)与条件(

2017/6/30

狗日的一天. 昨天社会实践宣讲,正好有一个大一的和一个大二的有组队的意思,我就参加了,因为我时间最多,所以主动当了队长. 3人讨论下来是做水污染这方面.大一的想象力贫乏只能提出到处看看河流,存不存在污染现象的情况.我当时不想骂他幼稚,只能说这是备选方案,优先方案是参观水污染处理厂. 我回寝室搜索曾经在开放日开放的处理厂,找到了一个在寺儿沟的水处理厂.它曾经在5月份的时候向公众开放,我觉得还比较靠谱.我还找到一个垃圾处理厂,也曾经对公众开放过,在里面还有环保基地. 今天上午9点半,我从西门出发,花

ACM-ICPC北京赛区(2017)网络赛2【后缀数组+Java//不会】

#1579 : Reverse Suffix Array 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There is a strong data structure called "Suffix Array" which can effectively solve string problems. Let S=s1s2...sn be a string and let S[i,j] denote the substring of S ranging f

JavaScript引用类型之Array数组的concat()和push()方法的区别

在javascript中,我们一般都只用push向数组的尾部插入新元素的,但是其实在javascript中还有另外一个方法和push一样,也是向数组尾部插入新元素的,但是他们之间却存在着一定的区别,当我们看下面的代码的时候就明显的知道了: 1. 通过使用push操作数组: 2. 通过使用concat操作数组: 从上面的两个操作就很明显的看出来push和concat的区别了 push 遇到数组参数时,把整个数组参数作为一个对象插入:而 concat 则是拆开数组参数,一个元素一个元素地加进去. p

Leetcode基础篇30天30题系列之数组:模拟计算法

数组:加一题干:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一.最高位数字存放在数组的首位, 数组中每个元素只存储一个数字.你可以假设除了整数 0 之外,这个整数不会以零开头.参考样例:示例?1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123.示例?2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321.这道题是一道数组的基础题,其本质是一道模拟计算题.这道题有一定的工程应用意义,大家都知道,计算机的浮点数运算有

2017/7/30

Genius, freak, journey is reward, code review, brother and sister, ancestors, descendants, even, odd, 天才,怪胎,旅程是奖励,代码审查,兄弟姐妹,祖先,后代,偶,奇, , salt, sugar,preferences,persist, ,盐,糖,喜好,坚持, best genius life hackers make life easier 最好的天才生活黑客使生活更轻松