次のような配列を並べ替えて再配置することは可能ですか?
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));