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

JavaScriptで最初の配列を2番目に最大化する


問題

同じ長さの2つの数値配列arr1とarr2を受け取るJavaScript関数を作成する必要があります。

この関数は、最初の配列arr1の要素をシャッフルして、その最大要素数が配列arr2の対応する要素よりも多くなるようにする必要があります。次に、関数はシャッフルされた配列を返す必要があります。

たとえば、関数への入力が

入力

const arr1 = [3, 5, 12, 19];
const arr2 = [2, 9, 3, 12];

出力

const output = [3, 12, 5, 19];

出力の説明

arr1をシャッフルする前は、arr2よりも3つの対応する要素がありましたが、シャッフルされた配列では、4つの要素すべてが大きくなっています。

コードは次のとおりです:

const arr1 = [3, 5, 12, 19];
const arr2 = [2, 9, 3, 12];
const maximiseArray = (arr1 = [], arr2 = []) => {
   arr1.sort((a, b) => b - a)
   const indexes = arr2.map((v, index) => index).sort((a, b) => arr2[b] - arr2[a])
   const res = []
   for(let i = 0; i < indexes.length; i++) {
      const index = indexes[i]
      res[index] = arr1[0] > arr2[index] ? arr1.shift() : arr1.pop()
   }
   return res
}
console.log(maximiseArray(arr1, arr2));

出力

[ 3, 12, 5, 19 ]

  1. JavaScript array.keys()

    JavaScriptのarray.keys()メソッドは、配列のキーを持つArrayIteratorオブジェクトを返すために使用されます。 構文は次のとおりです- array.keys() ここで、JavaScriptでarray.keys()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Car Variants</h2>    <p id="test"></p>   &nb

  2. JavaScript Array.isArray()

    JavaScriptのArray.isArray()メソッドは、オブジェクトが配列であるかどうかを判断するために使用されます。 構文は次のとおりです- Array.isArray(ob) 上記のobパラメータはテスト対象です。 ここで、JavaScriptでArray.isArray()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Ranking Points</h2>    <p>Is this an array?