JS对象模拟数组的用法

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <script>
  9. function MyArray(){
  10. this.length = arguments.length;
  11. for (var i = 0; i < arguments.length; i++){
  12. this[i] = arguments[i];
  13. }
  14. // 1、新元素将添加在数组的末尾,并返回新的长度
  15. this.push = function (s){
  16. this[this.length]=s;
  17. this.length++;
  18. return this.length;
  19. }
  20. // 2、删除数组的最后一个元素并返回删除的元素
  21. this.pop = function (){
  22. var popdata = this[this.length-1];
  23. delete this[this.length-1];
  24. this.length--;
  25. return popdata;
  26. }
  27. // 3、返回表示Integer值的String对象
  28. this.toString = function (){
  29. var result = "";
  30. var j = ',';
  31. for (var i = 0; i<this.length-1; i++){
  32. result += this[i];
  33. result += j;
  34. }
  35. result += this[i];
  36. return result;
  37. }
  38. // 4、对数组的元素进行排序:正序和倒序
  39. this.sort = function sort(arr, flag=true) {
  40. for(var i=0; i<arr.length-1; i++) {
  41. for (var j = 0; j < arr.length-i-1; j++) {
  42. if(flag) {
  43. if (arr[j] > arr[j + 1]) {
  44. var swap = arr[j];
  45. arr[j] = arr[j + 1];
  46. arr[j + 1] = swap;
  47. }
  48. }else{
  49. if (arr[j] < arr[j + 1]) {
  50. var swap = arr[j];
  51. arr[j] = arr[j + 1];
  52. arr[j + 1] = swap;
  53. }
  54. }
  55. }
  56. }
  57. return arr;
  58. }
  59. // 5、返回数组参数中的最大值
  60. this.max = function arrmax(arr) {
  61. var max = arr[0];
  62. for(var i=0; i<arr.length; i++) {
  63. if(arr[i]>max)
  64. max=arr[i];
  65. }
  66. return max;
  67. }
  68. // 6、返回数组参数中的最小值
  69. this.min = function arrmin(arr) {
  70. var min = arr[0];
  71. for(var i=0; i<arr.length; i++) {
  72. if(arr[i]<min)
  73. min=arr[i];
  74. }
  75. return min;
  76. }
  77. // 7、反转数组中元素的顺序
  78. this.reverse = function() {
  79. var result = [];
  80. for(var i = 0; i < this.length; i++) {
  81. result[result.length] = this[this.length - i - 1];
  82. }
  83. for(var i = 0; i < result.length; i++) {
  84. this[i] = result[i];
  85. }
  86. return this;
  87. }
  88. }
  89. var arr = new MyArray(11,3,55,88,99,"abc");
  90. // 添加在数组的末尾
  91. console.log(arr.push("hello"));
  92. // 删除数组的最后一个元素
  93. console.log(arr.pop());
  94. // Integer值的String对象
  95. console.log(arr.toString());
  96. // 输出结果是开头第一个的元素
  97. console.log(arr[0]);
  98. // console.log(arr[1]); //输出结果是开头第二个的元素
  99. // console.log(arr[2]); //输出结果是开头第三个的元素
  100. // console.log(arr[3]); //输出结果是开头第四个的元素
  101. // console.log(arr[4]); //输出结果是开头第五个的元素
  102. // console.log(arr[5]); //输出结果是开头第六个的元素
  103. // console.log(arr[6]); //输出结果是未定义
  104. // 排序:true时为正序,false时为倒序
  105. console.log(arr.sort(arr, true));
  106. // 返回数组参数中的最大值
  107. console.log(arr.max(arr));
  108. // 返回数组参数中的最小值
  109. console.log(arr.min(arr));
  110. // 反转数组中元素的顺序
  111. console.log(arr.reverse());
  112. </script>
  113. </body>
  114. </html>

运行结果:

更多相关文章

  1. Activity之间传递类对象
  2. Android中的使用
  3. Android:使用SAX或者DOM或者pull操作XML文件
  4. Android(安卓)build.gradle buildConfigField 配置数组
  5. Android开发便签9:在android资源文件中定义字符串数组
  6. Android(安卓)控制台异常:ScrollView can host only one direct c
  7. android常用布局
  8. android Listview中button 和Listview可同时点击的方法
  9. Android获取Manifest中元素的值

随机推荐

  1. Java-子类和父类的几种关系
  2. 准备语句SQL异常“无输入参数”
  3. 低延迟系统的Java实践
  4. java基础:集合框架之Map(共性方法)
  5. Java正则表达式
  6. javaweb从单机到分布式架构演变过程
  7. Netty学习心得 netty服务端和客户端的连
  8. 线程“main”中的异常java.lang.RuntimeE
  9. java中jcom操作excel
  10. JavaWeb-1-IOS或Android客户端上传图片到