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

JavaScriptでの相対的な並べ替え


たとえば、arr1とarr2の2つの配列があるとします。 arr2の要素は別個のものであり、arr2のすべての要素もarr1にあります。

このような2つの配列を取り込んで、arr1のアイテムの相対的な順序がarr2と同じになるようにarr1の要素を並べ替えるJavaScript関数を作成する必要があります。arr2に表示されない要素は最後に配置する必要があります。 arr1の昇順。

たとえば、-2つの入力配列が-

の場合
const arr1 = [2,3,1,3,2,4,6,7,9,2,19];
const arr2 = [2,1,4,3,9,6];
>

その場合、出力は-

になります。
const output = [2,2,2,1,4,3,3,9,6,7,19];

const arr1 = [2,3,1,3,2,4,6,7,9,2,19];
const arr2 = [2,1,4,3,9,6];
const relativeSortArray = (arr1, arr2) => {
   const map = new Map();
   const len = arr2.length;
   arr2.forEach((a, i) => {
      map.set(a, i); });
      return arr1.sort((a, b) => {
         a = map.has(a) ? map.get(a) : len + a;
         b = map.has(b) ? map.get(b) : len + b; return a - b;
   });
};
console.log(relativeSortArray(arr1, arr2));

出力

そして、コンソールの出力は-

になります
[
   2, 2, 2, 1, 4,
   3, 3, 9, 6, 7,
   19
]

  1. JavaScriptでの頻度による文字列文字の並べ替え

    問題 文字列を唯一の引数として受け取るJavaScript関数を作成する必要があります。 関数は、元の文字列に基づいて新しい文字列を準備する必要があります。この文字列では、ほとんどの回数出現する文字が最初に配置され、次に頻度が減少する数字が配置されます。 たとえば、関数への入力が-の場合 const str = 'free'; その場合、出力は-になります。 const output = 'eefr'; 出力の説明: eは2回表示されるため、最初に配置され、次にrとfが配置されます。 例 このためのコードは-になります const str = 

  2. JavaScriptでの配列の不均一な並べ替え

    問題 唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。この関数は、並べ替え後に要素がこのパターンに従うように、この配列を並べ替える必要があります- arr[0] < arr[1] > arr[2] < arr[3].... たとえば、関数への入力が-の場合 const arr = [1, 5, 1, 1, 6, 4]; 次に、出力は次のようになります(複数の可能な回答が存在する可能性もあります)- const output = [2, 3, 1, 3, 1, 2]; 例 このためのコードは-になります const arr