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

配列から連続する重複要素を再帰的に削除するにはどうすればよいですか?


このような連続した冗長エントリを含むNumberリテラルの配列があるとします-

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];

この配列を取り込んで、すべての冗長な連続エントリを削除する関数compressを作成することになっています。出力が次のようになるように-

const output = [1, 2, 3, 1];

この関数のコードを書いてみましょう。これには再帰を使用し、このコードは-

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];
const compress = (arr, len = 0, canDelete = false) => {
   if(len < arr.length){
      if(canDelete){
         arr.splice(len, 1);
         len--;
      }
      return compress(arr, len+1, arr[len] === arr[len+1])
   };
   return;
};
compress(testArr);
console.log(testArr);

出力

コンソールの出力は-

になります
[ 1, 2, 3, 1 ]

  1. JavaScriptを使用して同じ配列内の配列の要素を複製するにはどうすればよいですか?

    以下は、同じ配列内の配列の要素を複製するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" > <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>   &nbs

  2. Swiftアレイから特定の要素を削除するにはどうすればよいですか?

    swiftの要素から特定のオブジェクトを削除するには、複数の方法を使用できます。例を使って、遊び場でこれを見てみましょう。 まず、文字列の配列を作成しましょう。 var arrayOfString = ["a","b","c","f"] 以下に示すように、次の方法でそれを行います。 方法1-配列のフィルターメソッドを使用します。 swiftの配列には、いくつかの条件に応じて配列オブジェクトをフィルタリングし、新しいオブジェクトの配列を返すfilterメソッドがあります。 let modifiedArray =