前端按入参skulist 进行出参list的排序

244 阅读1分钟

业务场景

因为特殊原因前端需要多skuid进行请求后端接口,并且以入参顺序进行页面渲染。而后端由于特殊原因无法提供入参顺序进
行数据排序返回。这里需要前端把后端返回的list按照前端入参顺序进行排序。

示例

前端入参 skus=[255,256,254,258,232]
请求后端接口querySkuList
后端返回list(顺序随机)
skuList=[{skuid:258,title:"商品258"}
,{skuid:254,title:"商品254"}
,{skuid:256,title:"商品256"}
,{skuid:255,title:"商品255"}
,{skuid:232,title:"商品232"}]
let skus = [255,256,254,258,232]
let skuList = [{skuid:258,title:"商品258"}
    ,{skuid:254,title:"商品254"}
    ,{skuid:256,title:"商品256"}
    ,{skuid:255,title:"商品255"}
    ,{skuid:232,title:"商品232"}]
    // 把skus进行按索引反转
    let skusKeysort = {}
    for(let i = 0; i < skus.length; i++){
        skusKeysort[skus[i]] = i  
    }
    // skusKeysort值 现在为 {232: 4, 254: 2, 255: 0, 256: 1, 258: 3}
    //把skuList进行排序
    skuList.sort((a,b)=>{
        return skusKeysort[b.skuid] - skusKeysort[a.skuid]
    })
    console.log(skuList) //完美排序