ビジネスシナリオ
特別な理由で、フロントエンドが複数のスクイッドでバックエンドのインターフェースをリクエストし、入力順にページをレンダリングする必要がある。バックエンドは特別な理由で入力順を提供できない。
行データがソートされて返される。ここでは、フロントエンドがバックエンドから返されたリストをフロントエンドの入力順にソートする必要がある。
代表例
フロントエンド入力 skus=[,,232]
バックエンドのインターフェースを要求するquerySkuList
バックエンドはリストを返す
skuList=[{skuid:258,title:" 258"}
,{skuid:254,title:" 254"}
,{skuid:256,title:" 256"}
,{skuid:255,title:" 255"}
,{skuid:232,title:" 232"}]
let skus = [,,232]
let skuList = [{skuid:258,title:" 258"}
,{skuid:254,title:" 254"}
,{skuid:256,title:" 256"}
,{skuid:255,title:" 255"}
,{skuid:232,title:" 232"}]
// インデックスによる逆スカス
let skusKeysort = {}
for(let i = 0; i < skus.length; i++){
skusKeysort[skus[i]] = i
}
// skusKeysort価値は現在 {4: 2, 6: 1, 258: 3}
//skuListをソートする
skuList.sort((a,b)=>{
return skusKeysort[b.skuid] - skusKeysort[a.skuid]
})
console.log(skuList) //パーフェクト・ソート