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

JavaScriptで配列からシーケンスを形成する


このように並べ替えられた番号の配列があり、連続した番号を持つことができるとします。

const arr = [1, 2, 3, 5, 7, 8, 9, 11];

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

関数は、この配列のシーケンスを形成する必要があります。シーケンスは、配列のすべての連続する要素について、開始番号と終了番号を書き、その間の番号をダッシュ​​(-)に置き換え、他のすべての番号を変更しないようにする必要があります。

したがって、上記の配列の場合、出力は次のようになります-

const output = '1-3,5,7-9,11';

このためのコードは-

になります
const arr = [1, 2, 3, 5, 7, 8, 9, 11];
const buildSequence = (arr = []) => {
   let pointer;
   return arr.reduce((acc, val, ind) => {
      if (val + 1 === arr[++ind]) {
         if (pointer == null ) {
            pointer = val;
         };
         return acc;
      };
      if (pointer) {
         acc.push(`${pointer}-${val}`);
         pointer = null;
         return acc;
      }
      acc.push(val);
      return acc;
   }, []).join(',');
}
console.log(buildSequence(arr));

出力

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

になります
1-3,5,7-9,11

  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?