JavaScript 配列を別の配列に基づいて並べ替える 質問する

JavaScript 配列を別の配列に基づいて並べ替える 質問する

次のような配列を並べ替えて再配置することは可能ですか?

itemsArray = [
    ['Anne', 'a'],
    ['Bob', 'b'],
    ['Henry', 'b'],
    ['Andrew', 'd'],
    ['Jason', 'c'],
    ['Thomas', 'b']
]

この配列の配置に一致させるには:

sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ]

残念ながら、追跡する ID はありません。できるだけ sortingArr に一致するように items-array を優先する必要があります。

私が求めている出力は次のとおりです。

itemsArray = [
    ['Bob', 'b'],
    ['Jason', 'c'],
    ['Henry', 'b'],
    ['Thomas', 'b']
    ['Anne', 'a'],
    ['Andrew', 'd'],
]

これはどうすればできるのでしょうか?

ベストアンサー1

一行の回答。

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});

あるいはもっと短く:

itemsArray.sort((a, b) => sortingArr.indexOf(a) - sortingArr.indexOf(b));

おすすめ記事