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

JavaScriptで配列の要素を再配置する


問題

最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。

配列arrは、常に偶数の長さになります。

0 <=i

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

の場合
const arr = [4, -2, 2, -4];

その場合、出力は-

になります。
const output = true;

出力の説明

[-2、-4]と[2,4]の2つのグループを使用して、[-2、-4,2,4]または[2,4、-2、-4]を形成できます。

このためのコードは-

になります
const arr = [4, -2, 2, -4];
const canRearrange = (arr = []) => {
   const map = arr.reduce((acc, num) => {
      acc[num] = (acc[num] || 0) + 1
      return acc
   }, {});
   const keys = Object.keys(map)
   .map(key => Number(key))
   .sort((a, b) => a - b)
   for (const key of keys) {
      if (key < 0) {
         while (map[key] > 0) {
            if (map[key / 2] > 0) {
               map[key] -= 1
               map[key / 2] -= 1
            } else {
               return false
            }
         }
      } else {
         while (map[key] > 0) {
            if (map[key * 2] > 0) {
               map[key] -= 1
               map[key * 2] -= 1
            } else {
               return false
            }
         }
      }
   }
   return true
};
console.log(canRearrange(arr));

出力

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

になります
true

  1. JavaScript配列slice()

    JavaScriptのslice()メソッドは、配列内の選択された要素を返すために使用されます。 構文は次のとおりです- array.slice(start, end) 上記のstartパラメータは、選択を開始する場所を指定する整数ですが、endは選択が終了する場所です。 JavaScriptでslice()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Demo Heading</h2>    <p id="t

  2. JavaScript array.values()

    JavaScriptのarray.values()は、指定された配列のすべての値を含むイテレータオブジェクトを返します。 以下は、array.values()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />