一个菜鸟的互联网技术分享博客
您的位置: 主页 > 阿里的一道经典面试题
advertisement

阿里的一道经典面试题

和一个大学好哥们在聊天的时候那个“吊毛”无意之间给我一道阿里的面试过来叫我做做看(刚好最近也在找工作),题目如下:
给定两个数组,要求将两个数组整体成一个数组,并且按照主键(id)排序,不能重复,有冲突的话需要思考冲突解决方法

本人一开始的想法是先使用contat合并数组然后再去对数组进行去重,然后找到找到多个ID相同的数据去排序,后面发现阿里不可能考这么简单的题目呀,回过头来发现自己的思路也违反的要求:存在冲突
后面经过同学提示,直接放聊天记录了(不想码字)

最终代码如下:

  1. <!DOCTYPE html>  
  2. <html>  
  3.     <head>  
  4.         <meta charset="utf-8">  
  5.         <title></title>  
  6.     </head>  
  7.     <body>  
  8.     </body>  
  9.     <script type="text/javascript">  
  10.         /* 
  11.         给定两个数组,要求将两个数组整体成一个数组,并且按照 
  12.         主键(id)排序,不能重复,有冲突的话需要思考冲突解决方法 
  13.         */  
  14.         const Birds = [{  
  15.                 name: 'birds1',  
  16.                 sex: 'man',  
  17.                 id: 10  
  18.             },  
  19.             {  
  20.                 name: 'birds2',  
  21.                 sex: 'man',  
  22.                 id: 11  
  23.             },  
  24.             {  
  25.                 name: 'birds3',  
  26.                 sex: 'man',  
  27.                 id: 130  
  28.             },  
  29.             {  
  30.                 name: 'birds4',  
  31.                 sex: 'man',  
  32.                 id: 130  
  33.             },  
  34.             {  
  35.                 name: 'birds5',  
  36.                 sex: 'man',  
  37.                 id: 130  
  38.             },  
  39.             {  
  40.                 name: 'birds6',  
  41.                 sex: 'man',  
  42.                 id: 130  
  43.             }  
  44.         ];  
  45.         const Horse = [{  
  46.                 name: 'horse1',  
  47.                 sex: 'woman',  
  48.                 id: 10  
  49.             },  
  50.             {  
  51.                 name: 'horse2',  
  52.                 sex: 'woman',  
  53.                 id: 11  
  54.             },  
  55.             {  
  56.                 name: 'horse3',  
  57.                 sex: 'woman',  
  58.                 id: 130  
  59.             }  
  60.         ];  
  61.         function mySort(first, second) {  
  62.             let myArray = first.concat(second).sort((a, b) => {  
  63.                 return a.id - b.id  
  64.             })  
  65.             for (let i = 0; i < myArray.length; i++) {  
  66.                 myArray[i].id = myArray[i].id > (i == 0 ? myArray[0].id - 1 : myArray[i - 1].id) ? myArray[i].id : (i == 0 ?  
  67.                     myArray[0].id : myArray[i - 1].id + 1)  
  68.             }  
  69.             console.log(myArray)  
  70.         }  
  71.         mySort(Birds, Horse)  
  72.     </script>  
  73. </html> 
可点击该链接进行访问(记得按F12打开控制台哟),同学博客链接

zhangren.online
上一篇:面试题:杂乱字母出现的次数
下一篇:CSS气泡对话框

您可能喜欢

​jQuery数字字母组合验证码

​jQuery数字字母组合验证码

​解决ajax跨域问题

​解决ajax跨域问题

​获取当前页面的链接里的某个值

​获取当前页面的链接里的某个值

​鼠标点击时出现小心心

​鼠标点击时出现小心心

回到顶部