高德面试题-地图

 

const res = {

    code: 0,

    data: { lines: '20路,301路,5路,地铁5号线,机场大巴线,107路,机场快轨',

    lineids: 'lzbd,lwes,lxid,lwic,lwdf,ldfx,loin',

    linedetails: {

            lwdf: {name: '机场大巴线'},

            lwes: {name: '301路'},

            lwic: {name: '地铁7号线'},

            lwiv: {name: '地铁5号线'},

            ldfx: {name: '107路'},

            lzbd: {name: '20路'},

            lxid: {name: '5路'},

            loin: {name: '机场快轨'}

        }

    }

}

parse(res)

function parse(res){

    var linedetails = res.data.linedetails;

    var linesArr = res.data.lines.split(",");

    var lineids = res.data.lineids.split(",");

    var chLine = []; //常规

    var dtLine = []; //地铁

    var ontherLine = []; //其他

    var tempArr = []; 

    var res=[]; //最终生成的数组 

    for(var i = 0; i <linesArr.length;i++){

        var lastName = linesArr[i].charAt(linesArr[i].length-1);

        var firstName = linesArr[i].slice(0,2);

        if(lastName === '路'){

            chLine.push({

            name:linesArr[i],

            lines:lineids[i]

            });

        }else if(firstName === '地铁'){

            dtLine.push({

            name:linesArr[i],

            lines:lineids[i]

            });

        }else{

            ontherLine.push({

            name:linesArr[i],

            lines:lineids[i]

            });

        } 

    }

    chLine.sort(compareNum);

    dtLine.sort(compareNum);

    ontherLine.sort(compareLong);

    // console.log( chLine,dtLine,ontherLine)

    tempArr = tempArr.concat(chLine,dtLine,ontherLine);

    // console.log(tempArr)

    for(var key in tempArr){

        var map={};

        map.name = tempArr[key].name ;

        var result = {};

        result[tempArr[key].lines] = map; 

        res.push(result)

    }

    console.log(res)

    return res;

}

    function compareLong(a,b){

        return a.name.length - b.name.length;

    } 

    function compareNum(a,b){

        var testNum = /\d+/g;

        return a.name.match(testNum) - b.name.match(testNum);

    }

运行结果

高德面试题-地图