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

javaScript基础03数组..

时间:2018-10-01 12:25:28      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:空间   javascrip   tle   turn   模拟   shift   temp   过滤   执行   

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>javascript基础练习03</title>
  6     <script>
  7         // 简单数据类型 Number String Boolean null undefined
  8 
  9         // 复杂数据类型 对象,方法.,引用类型  
 10 
 11         // 简单数据类型存放在栈上面,先进后出.
 12 
 13         // 复杂数据类型的地址放在栈上面,通过栈找到堆存放的具体内容,后执行.
 14 
 15         function person (name) {
 16             this.name = name;
 17         }
 18 
 19         var p = new person("zhang");
 20 
 21         function fn (person) {
 22 
 23             person.name = "li";
 24         }
 25         fn(p);
 26         console.log(p.name);
 27 
 28         //总结:函数把对象当做参数传递,传递的是地址,传址,并没有划出一份单独的空间
 29 
 30         // 内置对象 内置对象内置对象内置对象
 31 
 32 
 33         //*********************************
 34         //*******************++++++++++______________+++++
 35 
 36 
 37         var num = new Uint32Array(2); //在num数组里面,创建2个随机整数元素
 38         
 39         
 40         window.crypto.getRandomValues(num);
 41 
 42         console.log(num);
 43 
 44 
 45         // 判断是否是日期对象?
 46 
 47         date instanceof Date
 48 
 49         var date = new Date();
 50 
 51         date.getMonth();//月份从0开始算
 52 
 53         // 数组应用:
 54 
 55         // 如何判断一个数据是否是数组?
 56             // * instanceof * 判断一个变量是否是一个构造函数实例出来的对象
 57 
 58             // nums instanceof Array;
 59         var nums = 1;
 60         console.log(!!nums);// ! 取反,!! 转换成boolean;
 61 
 62 
 63         // 栈:
 64         //     先进后出
 65 
 66             // push() //往入口处最后添加一个元素,返回数组长度
 67 
 68             // pop()//弹栈,从入口处弹出一个元素,返回该元素之
 69 
 70 
 71         // 队列:
 72 
 73             // 先进先出
 74 
 75         //     push() 在队列后面添加一个元素
 76 
 77         // shift() 从最前面取出一个元素,为最早放进去的元素
 78 
 79 
 80         // 排序
 81             // sort 从小到大
 82 
 83                 // 注意,默认的sort排序,是从元素的最高位到最低位,一一进行对比,会造成20小于1000的现象,!!因此需要改进
 84 
 85                 // 需要在sort()里面加上一个函数
 86 
 87                 function compare(a,b) {//引用之后,就是比较的相邻的元素
 88                     return a -b;
 89                 }
 90                 var nums = [1000,20];
 91 
 92                 nums.sort(compare);
 93                 console.log(nums);
 94 
 95 
 96                 //手写sort模拟排序
 97 
 98                 function mySort(arr,compare) {
 99                     for (var i = 0;i < arr.length - 1;i++) {
100                         // console.log("一"+arr.length);
101 
102                         for (var j = 0;j < arr.length -1;j++) {
103 
104                             if (compare(arr[j],arr[j +1]) > 0) {
105                                 // console.log("二"+arr.length);
106                                 var temp = arr[j];
107                                 arr[j] = arr[j + 1];
108                                 arr[j + 1] = temp;
109                             }
110                         }
111                     }
112                     return arr;
113                 }
114 
115                 var larry = [10002,20]
116                 var result = mySort(larry,function (a,b) {
117                     return a - b;
118                 });
119 
120                 console.log(result);
121             // reverse 翻转
122 
123 
124             //数组清空:
125 
126             var arr = [1,2,34,5];
127 
128             // arr.splice(从哪开始,删除多少个)
129 
130             arr.splice(0,arr.length);
131 
132 
133             //数组填充 fill:
134             var arr = [1,2,34,5];
135 
136             console.log(arr.fill("c",1,3));
137 
138             
139             // every() 通过函数判断数组中的每个元素,是够通过测试,返回True或false
140 
141             var arr = [1,2,34,5];
142 
143             function isThreshold(arr){
144                 return arr > 40;
145             }
146 
147             console.log(arr.every(isThreshold));
148 
149 
150             // 数组元素字符串拼接:
151             var arr = [1,2,34,5];
152             console.log(arr.join("|"));
153 
154             // filter 过滤数组中的每个元素,并且生成一个新的数组:
155             var arr = [1,2,34,5];
156 
157             function isThreshold(arr) {
158                 return arr > 3;
159             }
160 
161             var acc = arr.filter(isThreshold);
162             var acc1 = arr.filter(function (item) {
163                 
164 
165                 return item > 30;
166             });
167             console.log(acc1);
168             console.log(acc);
169 
170             // 用indexOF查找一个数组中制定元素的所有下标
171 
172             var arr = ["a",1,2,3,"a",24,2,5,"a","c",216,1,"a",123,23,4,];
173             var indexArry = [];
174             var i = 0;
175             while (true) {
176                 
177                 var index = arr.indexOf("a",i);//查找"a"的下标,从i开始;
178                 if (index != -1) {
179                     i = index+1;
180                     var bindex = index;
181                     indexArry.push(bindex);
182                 }
183                 else{
184                     break;
185                 }
186             }
187 
188             console.log(indexArry); //[0, 4, 8, 12]
189 
190 
191         //数组去重..
192 
193             
194     </script>
195 </head>
196 <body>
197     
198 </body>
199 </html>

 

javaScript基础03数组..

标签:空间   javascrip   tle   turn   模拟   shift   temp   过滤   执行   

原文地址:https://www.cnblogs.com/huasongweb/p/9734419.html

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