m0_71236096 2022-07-19 10:27 采纳率: 50%
浏览 49
已结题

js面试题,如何封装一个函数让arr输出下面的结果

如何封装一个函数让arr输出下面的结果

let arr=[
{id:1},
{id:1},
{id:2},
{id:3},
{id:3},
{id:4},
{id:5},
{id:5}
]

 输出arr = [
 [{id:1},{id:1}],
 [{id:2}],
 [{id:3},{id:3}],
 [{id:4}],
 [{id:5},{id:5}]
]
*/
  • 写回答

3条回答 默认 最新

  • 林一怂儿 前端领域新星创作者 2022-07-19 13:22
    关注
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            let arr1 = [
                { id: 1 },
                { id: 1 },
                { id: 2 },
                { id: 3 },
                { id: 3 },
                { id: 4 },
                { id: 5 },
                { id: 5 }
            ]
            let arr2 = [
                [{ id: 1 }, { id: 1 }],
                [{ id: 2 }],
                [{ id: 3 }, { id: 3 }],
                [{ id: 4 }],
                [{ id: 5 }, { id: 5 }]
            ]
            function format(arr) {
                let res = {}
                for (let i = 0; i < arr.length; i++) {
                    if (!res[arr[i].id]) res[arr[i].id] = []
                    res[arr[i].id].push(arr[i]);
                }
                return Object.values(res)
            }
            console.log(format(arr1));
            console.log(JSON.stringify(format(arr1)) == JSON.stringify(arr2));
        </script>
    </body>
    </html>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月27日
  • 已采纳回答 7月19日
  • 创建了问题 7月19日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度