美文网首页
js算法面试题

js算法面试题

作者: 一人创客 | 来源:发表于2020-06-10 01:48 被阅读0次

    1.实现二维数组行转列

    let arr = [
    ['前端','3人','8-15k','本科'],
    ['后端','5人','10-25k','研究生'],
    ['UI','2人','9-11k','大专'],
    ['ETL工程师','10人','6-12k','大专'],
    ];

    //Transform =>

    let newArr = [
    ['前端','后端','UI','ETL工程师'],
    ['3人','5人','2人','10人'],
    ['8-15k','10-25k','9-11k','6-12k'],
    ['本科','研究生','大专','大专'],
    ];

    答案

     let arr = [
                ['前端', '3人', '8-15k', '本科'],
                ['后端', '5人', '10-25k', '研究生'],
                ['UI', '2人', '9-11k', '大专'],
                ['ETL工程师', '10人', '6-12k', '大专'],
            ];
            let arrs = arr1[0].map((a, i) => {
                return arr.map(e => { return e[i] })
            });
            console.log(arrs, '实现二维数组行转列')
    

    2.对以下数据 取出每人(name)最大的销售量(sales) ( 对sales排序对name去重,加分项:不使用sort函数)

    let arr = [
    { name:'小明', year: 2019 , sales: 53 }, { name:'小明', year: 2020 , sales: 234 }, { name:'小明', year: 2018 , sales: 24 },
    { name:'小强', year: 2019 , sales: 31 }, { name:'小强', year: 2020 , sales: 567 }, { name:'小强', year: 2018 , sales: 678 },
    { name:'小红', year: 2019 , sales: 465 }, { name:'小红', year: 2020 , sales: 82 }, { name:'小红', year: 2018 , sales: 576 },
    { name:'小马', year: 2019 , sales: 4567 }, { name:'小马', year: 2020 , sales: 832 }, { name:'小马', year: 2018 , sales: 674 },
    ];

    //Transform =>

    let newList = [
    { name:'小明', year: 2020 , sales: 234 },
    { name:'小强', year: 2018 , sales: 678 },
    { name:'小红', year: 2018 , sales: 576 },
    { name:'小马', year: 2019 , sales: 4567 }
    ]

    答案

    let arr = [
                { name: '小明', year: 2019, sales: 53 }, { name: '小明', year: 2020, sales: 234 }, { name: '小明', year: 2018, sales: 24 },
                { name: '小强', year: 2019, sales: 31 }, { name: '小强', year: 2020, sales: 567 }, { name: '小强', year: 2018, sales: 678 },
                { name: '小红', year: 2019, sales: 465 }, { name: '小红', year: 2020, sales: 82 }, { name: '小红', year: 2018, sales: 576 },
                { name: '小马', year: 2019, sales: 4567 }, { name: '小马', year: 2020, sales: 832 }, { name: '小马', year: 2018, sales: 674 },
            ];
            
     
    
            let nameList = Array.from(new Set(arr.map(e => { return e.name }))).reduce((previous, current) => {
                previous.push(
                    arr.filter((item) => {
                    return item.name == current
                }).reduce((previous, current) => {
                return previous.sales > current.sales ? previous : current
            }, [])
                )
                return previous
            }, []);
            
            console.log(nameList)
    

    相关文章

      网友评论

          本文标题:js算法面试题

          本文链接:https://www.haomeiwen.com/subject/qwgytktx.html