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

JavaScriptの現在の要素と以前の要素の違いに基づいて並べ替えられた配列をグループ化します


次のように昇順で並べ替えられた整数の配列があるとします-

const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。関数は、-

が次のようになるように配列をグループ化する必要があります。
  • グループ内の要素の違いは1以下です

  • 各グループ要素には、有効と見なされる複数の要素が必要です

上記の条件に基づいて、期待される出力は-

になります。
const output = [
   [1, 2, 3],
   [5, 6, 7],
   [17, 18]
];

このためのコードは-

になります
const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];
const groupNear = (arr = []) => {
   const res = [];
   for (let ind = 0; ind < arr.length; ind++) {
      let value = arr[ind];
      if (arr[ind − 1] + 1 === value) {
         res[res.length − 1].push(value);
      } else if (value + 1 === arr[ind + 1]) {
         res.push([value]);
      };
   };
   return res;
};
console.log(groupNear(arr));

出力

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

になります
[ [ 1, 2, 3 ], [ 5, 6, 7 ], [ 17, 18 ] ]

  1. JavaScriptの関数とメソッドの違いは何ですか?

    JavaScriptでも関数とメソッドは同じですが、メソッドはオブジェクトのプロパティである関数です。 以下はJavaScriptの関数の例です- function functionname(param1, param2){    // code } 例 メソッドはオブジェクトに関連付けられた関数です。以下はJavaScriptのメソッドの例です- <html>    <head>       <script>          var e

  2. k要素のグループとCの配列の残りの部分との最大差

    サイズNと数値kの整数の配列が与えられます。配列はランダムな順序の整数で構成されます。タスクは、k要素のグループと配列の残りの部分との間の最大の差を見つけることです。アレイは2つの部分に分割されます。最初の部分は取り出されたk要素のグループであり、2番目の部分は配列の残りの要素です。両方のグループの要素の合計の差が最大になるように、k個の要素を選択する必要があります。 kが小さい場合(<=配列サイズの半分)、最小のk要素の合計は最小になり、残りのN-k要素の合計は最大になります。したがって、最大の差は-(残りのN-k要素の合計)-(最小のk要素の合計)です。 kが大きい場合(配列サイズの半