Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの別の配列に従って配列を並べ替える


これらのようなリテラルの2つの配列があるとします-

const arr1 = [1, 3, 2, 4, 5, 6];
const arr2 = [1, 2, 5];

このような2つの配列を受け取るJavaScript関数を作成する必要があります。次に、関数はarr1のすべての要素を含むが、arr2に従ってソートされた新しい配列を返す必要があります。

両方の配列に表示される要素と同様に、最初に2番目の配列の順序に従って表示され、次に最初の配列にのみ存在する要素がその順序を保持する必要があります。

このためのコードは-

になります
const arr1 = [1, 3, 2, 4, 5, 6];
const arr2 = [1, 2, 5];
const sortByReference = (arr1, arr2) => {
   const inBoth = el => arr1.indexOf(el) !== -1 && arr2.indexOf(el) !== -1;
   const sorter = (a, b) => {
      if(inBoth(a) && inBoth(b)){
         return arr1.indexOf(a) - arr2.indexOf(b);
      }
      if(inBoth(a)){
         return -1;
      };
      if(inBoth(b)){
         return 1;
      };
      return 0;
   };
   arr1.sort(sorter);
};
sortByReference(arr1, arr2);
console.log(arr1);

出力

コンソールの出力-

[ 1, 2, 5, 3, 4, 6 ]

  1. Javascriptでのマージソートとクイックソート

    マージソートは、分割統治法に基づくソート手法です。最悪の場合の時間計算量はΟ(n log n)です。ただし、このアルゴリズムは余分なO(n)メモリを必要とするため、スペースの面で追加のコストが発生します。 次に、このアルゴリズムをどのように実装するかを見てみましょう。 mergeSortとmergeの2つの関数を作成します。 マージ −この関数は2つの引数を取ります。これらは、2つの部分配列であり、要素を正しい順序で挿入することにより、1つに連結されます。 マージソート −この関数は、配列の左半分と右半分でmergeSortを再帰的に呼び出し、mergeを使用してこれらの配列部分を結合し

  2. JavaScriptのArray.prototype.sort()。

    JavaScript Array.prototype.sort()メソッドは、配列の並べ替えに使用されます。並べ替えの順序は、アルファベット、数字、昇順、降順のいずれかです。 以下は、Array.prototype.sort()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-