新航路师徒学院

 找回密码
 立即注册
搜索
查看: 416|回复: 0

【新航路】JS 数组面试题二

[复制链接]

80

主题

114

帖子

560

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
560
发表于 2016-8-28 19:19:43 | 显示全部楼层 |阅读模式
  1. var arr = [6,4,1,2];
  2. console.log(arr.sort(function(num1,num2){return num1-num2;})); //=>[1,2,4,6]
  3. console.log(arr.sort(function(num1,num2){return num2-num1;})); //=>[6,4,2,1]


  4. // 冒泡排序
  5. var arr = [6,4,1,2];
  6. for(var i=0,len=arr.length;i<len;i++){
  7.     for(var j=0,l=arr.length;j<l-i;j++){
  8.         toSort(j,j+1);
  9.     }
  10. }
  11. function toSort(prev,next){
  12.     var tmp = 0;
  13.     if(arr[prev]>arr[next]){ // > 从小到大, < 从大到小
  14.         tmp = arr[prev];
  15.         arr[prev] = arr[next];
  16.         arr[next] = tmp;
  17.     }
  18. }
  19. console.log(arr);//=>[1,2,4,6]   [6,4,2,1]



  20. var arr = [6,4,1,2,4,2,6];
  21. Array.prototype.fn = function(){
  22.     var newArr = [];
  23.     var json = {};
  24.     for(var i=0,len=this.length;i<len;i++){
  25.         if(!json[this[i]]){
  26.             newArr.push(this[i]);
  27.             json[this[i]] = true;
  28.         }
  29.     }
  30.         return newArr;
  31. }
  32. var nArr = arr.fn();
  33. console.log(nArr);

  34. var arr = [6,4,1,2,4,2,6];
  35. var newArr = [];
  36. var json = {};
  37. for(var i=0,len=arr.length;i<len;i++){
  38.     if(!json[arr[i]]){
  39.         newArr.push(arr[i]);
  40.         json[arr[i]] = 1;
  41.     }
  42. }
  43. console.log(newArr);

  44. var arr = [6,4,1,2,4,2,6];
  45. Array.prototype.fn = function(){
  46.     var newArr = [];
  47.     for(var i=0,len=this.length;i<len;i++){
  48.         if(newArr.indexOf(this[i])==-1){
  49.             newArr.push(this[i]);
  50.         }
  51.     }
  52.     return newArr;
  53. }
  54. var nArr = arr.fn();
  55. console.log(nArr);

  56. var arr = [6,4,1,2,4,2,6];
  57.             Array.prototype.fn = function(){
  58.                 var _this = this;
  59.                 var tmpArr = [];
  60.                 for(var i=0,len=this.length;i<len;i++){
  61.                     _this.toCom(this[i],tmpArr);
  62.                 }
  63.                 return tmpArr;
  64.             }
  65.             Array.prototype.toCom = function(arr,tmpArr) {
  66.                 var isT = true;
  67.                 for(var i=0,len=tmpArr.length;i<len;i++){
  68.                     if(arr == tmpArr[i]){
  69.                         isT = false;
  70.                         break;
  71.                     }
  72.                 }
  73.                 if(isT){
  74.                     tmpArr.push(arr);
  75.                 }
  76.             };
  77.             var nArr = arr.fn();
  78.             console.log(nArr);
  79. function fn(){
  80.                 var arr = [6,4,1,2,4,2,6];
  81.                 var tmpArr = [];
  82.                 for(var i=0,len=arr.length;i<len;i++){
  83.                     toCom(arr[i],tmpArr);
  84.                 }
  85.                 return tmpArr;
  86.             }
  87.             function toCom(arr,tmpArr) {
  88.                 var isT = true;
  89.                 for(var i=0,len=tmpArr.length;i<len;i++){
  90.                     if(arr == tmpArr[i]){
  91.                         isT = false;
  92.                         break;
  93.                     }
  94.                 }
  95.                 if(isT){
  96.                     tmpArr.push(arr);
  97.                 }
  98.             };
  99.             console.log(fn());


  100. 新航路HTML5培训团队
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

新航路师徒学院 ( 京ICP备16035622号

GMT+8, 2018-10-21 18:32 , Processed in 0.137971 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表