每天10个前端知识点:数组应用
2017-01-14 23:12
218 查看
个人博客已上线,欢迎前去访问评论!
无媛无故 - wangchloe的个人博客
以下内容若有问题烦请即时告知我予以修改,以免误导更多人。
arr=[];
arr.splice(0,arr.length);
循环pop或shift
更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!
无媛无故 - wangchloe的个人博客
以下内容若有问题烦请即时告知我予以修改,以免误导更多人。
1. 数组翻转方法2
eg: 这里说明一下,这个方法用的不是reverse,因为一次面试中被问过不用reverse实现翻转,所以这里标注为数组的翻转方法2。<script> var arr=[1,2,3,4]; var arr2=[]; while(arr.length) { var num=arr.pop(); arr2.push(num); } alert(arr2); </script>
2. 首字母大写
eg:<script> var str = 'welcome to china'; var arr = str.split(' '); var arr2 = []; for(var i = 0; i < arr.length; i++) { var first = arr[i].charAt(0).toUpperCase(); var other = arr[i].substring(1); arr2.push(first + other); } alert(arr2.join(' ')); //正则写法 var str2 = str.replace(/\w+/g, function(s) { return s.charAt(0).toUpperCase().substring(); }) alert(str2); </script>
3.快速清空数组
length=0;arr=[];
arr.splice(0,arr.length);
循环pop或shift
4. 数组排序方法
更多方法见后续排序算法篇<script> function findMinIndex(arr, start) { var iMin = arr[start]; var iMinIndex = start; for(var i = start + 1; i < arr.length; i++) { if(iMin > arr[i]) { iMin = arr[i]; iMinIndex = i; } } return iMinIndex; } for(var i = 0; i < arr.length; i++) { var iMinIndex = findMinIndex(arr, i); var temp; temp = arr[iMinIndex]; arr[iMinIndex] = arr[i]; arr[i] = temp; } </script>
5. 数组内查找元素是否存在
<script> function findInArr(item, arr) { for(var i = 0; i < arr.length; i++) { if(item == arr[i]) { return true; } else { return false; } } } </script>
6. 数组去重的多种方法
(1)findInArr
<script> var arr2 = []; for(var i = 0; i < arr.length; i++) { if(!findInArr(arr[i], arr2)) { arr2.push(arr[i]); } } // 数组内查找元素是否存在 function findInArr(item, arr) { for(var i = 0; i < arr.length; i++) { if(item == arr[i]) { return true; } else { return false; } } } </script>
(2)json(自动从小到大排序)
<script> var json = {}; var arr2 = []; for(var i = 0; i < arr.length; i++) { json[arr[i]] = 'xxx'; } for(var name in json) { arr2.push(name); } </script>
(3)sort()
<script> arr.sort(); for(var i = 0; i < arr.length; i++) { if(arr[i] == arr[i+1]) { arr.splice(i, 1); i--; } } </script>
(4) indexOf
这个方法是在前端公众号偶然看到的,数组的indexOf方法第一次用到<script> for(var i = 0; i < arr.length; i++) { if(arr2.indexOf(arr[i]) < 0) { arr2.push(arr[i]); } } </script>
(5)二分法
<script> var arr = [1, 2, 3, 2, 4, 3, 1, 5, 7, 2, 5]; // 数组内查找元素是否存在 function findInArr(item, arr) { for(var i = 0; i < arr.length; i++) { if(item == arr[i]) { return true; } } return false; } function del(arr, s, e) { if(s > e) { return []; } else if(s == e) { return [arr[s]]; } var c = Math.floor((s + e) / 2); var l = del(arr, s, c); var r = del(arr, c + 1, e); for(var i = 0; i < r.length; i++) { if(!findInArr(r[i], l)) { l.push(r[i]); } } return l; } console.log(del(arr, 0 , arr.length - 1)); </script>
更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!
相关文章推荐
- 每天10个前端知识点:原生篇(2)
- 每天10个前端知识点:布局大全
- 每天10个前端知识点:原生篇(3)
- 每天10个前端知识点:原生篇(4)
- 每天10个前端知识点:事件篇
- 每天10个前端知识点:各种宽高距离篇
- 每天10个前端知识点:原生篇(5)
- 每天10个前端知识点:原生篇(1)
- 每天10个前端知识点:js组成篇
- 前端笔试题目总结——应用JavaScript函数递归打印数组到HTML页面上
- C#--第2周实验--任务8--编写一个控制台应用--输入10个数存入数组,求最大值、最小值和平均值
- java泛型的一些知识点:Java泛型--泛型应用--泛型接口、泛型方法、泛型数组、泛型嵌套
- 前端开发必会的10个知识点
- 综合应用题:投票程序(知识点:对象,数组,循环,流,工具类的应用)
- juicer高效、轻量的前端 (Javascript) 模板引擎的应用与 js-json格式转换为数组
- 前端开发必会的10个知识点
- AngularJS应用,常用数组知识点
- 【前端知识点】跨域之跨域资源共享 CORS 详解与应用
- 应用AJAX创建搜索引擎前端界面
- javascript中的对象和数组的应用技巧