ASCII码 ASCII码

JS基础知识:JS对象模拟数组方法用法实例分析

发布于:2022-05-23 16:30:23  栏目:技术文档

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>

运行结果:

相关推荐
阅读 +