ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で、ある配列を別の配列の順序に基づいて並べ替えるにはどうすればよいですか?

JavaScript で、ある配列を別の配列の順序に基づいて並べ替えるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-23 01:18:11497ブラウズ

How Can I Sort One Array Based on the Order of Another Array in JavaScript?

補助値に基づいた配列の並べ替え

JavaScript では、次で指定された順序に基づいて 1 つの配列を並べ替える必要があるシナリオがあります。別の配列。これは、要素の順序が重要なデータ構造を扱う場合に特に便利です。

次の例を考えてみましょう:

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

この場合、目的は itemsArray を再配置することです。 sortArrの順序と一致します。残念ながら、要素を追跡するための ID がないため、順序をできるだけ正確に一致させることが優先されます。

解決策:

これを実現するには、次のようにします。 JavaScript の組み込みの sort() メソッドをカスタム比較関数と組み合わせて利用します。比較関数は、sortingArr 内の対応する値に基づいて itemsArray の 2 つの要素を比較します。

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

この式は基本的に、sortingArr 内の要素の対応するインデックスに基づいて itemsArray を並べ替えます。その結果、再配置された配列は次のようになります:

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

このソリューションは、sortingArr で指定された順序に優先順位を付け、希望の配置で itemsArray を出力します。

以上がJavaScript で、ある配列を別の配列の順序に基づいて並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。