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

合計が0に最も近い配列の隣接要素-JavaScript


数値の配列を受け取り、合計が0に最も近い元の配列から2つの要素のサブ配列を返すJavaScript関数を作成する必要があります。

配列の長さが2未満の場合は、配列全体を返す必要があります。

例:入力配列が-

の場合
const arr = [4, 4, 12, 3, 3, 1, 5, -4, 2, 2];

ここで、ペア[5、-4]の合計は1であり、配列の隣接する2つの要素に最も近い0であるため、[5、-4]

を返す必要があります。

以下はコードです-

const arr = [4, 4, 12, 3, 3, 1, 5, -4, 2, 2];
const closestElements = (arr, sum) => {
   if(arr.length <= 2){
      return arr;
   }
   const creds = arr.reduce((acc, val, ind) => {
      let { closest, startIndex } = acc;
      const next = arr[ind+1];
      if(!next){
         return acc;
      }
      const diff = Math.abs(sum - (val + next));
      if(diff < closest){
         startIndex = ind;
         closest = diff;
      };
      return { startIndex, closest };
   }, {
      closest: Infinity,
      startIndex: -1
   });
   const { startIndex: s } = creds;
   return [arr[s], arr[s+1]];
};
console.log(closestElements(arr, 1));

出力

以下はコンソールの出力です-

[5, -4]

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

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 配列arrは、常に偶数の長さになります。 0 <=i

  2. JavaScriptを使用した2次元配列の要素の交互の合計

    問題 同じ数の行と列を含む数のmXnオーダーの2次元配列を受け取るJavaScript関数を作成する必要があります。 この配列の場合、関数は次の合計をカウントして返す必要があります- $ \ sum_ {i =1} ^ m \ sum_ {j =1} ^ n(-1)^ {i + j} a_ {ij} $ 例 以下はコードです- const arr = [    [4, 6, 3],    [1, 8, 7],    [2, 5, 9] ]; const alternateSum = (arr = []) => { &n