给定两个数组,要求将两个数组整体成一个数组,并且按照主键(id)排序,不能重复,有冲突的话需要思考冲突解决方法

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



最终代码如下:

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



最终代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title></title>
- </head>
- <body>
- </body>
- <script type="text/javascript">
- /*
- 给定两个数组,要求将两个数组整体成一个数组,并且按照
- 主键(id)排序,不能重复,有冲突的话需要思考冲突解决方法
- */
- const Birds = [{
- name: 'birds1',
- sex: 'man',
- id: 10
- },
- {
- name: 'birds2',
- sex: 'man',
- id: 11
- },
- {
- name: 'birds3',
- sex: 'man',
- id: 130
- },
- {
- name: 'birds4',
- sex: 'man',
- id: 130
- },
- {
- name: 'birds5',
- sex: 'man',
- id: 130
- },
- {
- name: 'birds6',
- sex: 'man',
- id: 130
- }
- ];
- const Horse = [{
- name: 'horse1',
- sex: 'woman',
- id: 10
- },
- {
- name: 'horse2',
- sex: 'woman',
- id: 11
- },
- {
- name: 'horse3',
- sex: 'woman',
- id: 130
- }
- ];
- function mySort(first, second) {
- let myArray = first.concat(second).sort((a, b) => {
- return a.id - b.id
- })
- for (let i = 0; i < myArray.length; i++) {
- myArray[i].id = myArray[i].id > (i == 0 ? myArray[0].id - 1 : myArray[i - 1].id) ? myArray[i].id : (i == 0 ?
- myArray[0].id : myArray[i - 1].id + 1)
- }
- console.log(myArray)
- }
- mySort(Birds, Horse)
- </script>
- </html>