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

JavaScriptのURL値を持つ配列から重複を削除します


このようなオブジェクトの配列があるとします-

const arr = [
   {
      url: 'www.example.com/hello',
      id: "22"
   },
   {
      url: 'www.example.com/hello',
      id: "22"
   },
   {
      url: 'www.example.com/hello-how-are-you',
      id: "23"
   },
   {
      url: 'www.example.com/i-like-cats',
      id: "24"
   },
   {
      url: 'www.example.com/i-like-pie',
      id: "25"
   }
];

そのようなオブジェクトの配列を1つ取り込むJavaScript関数を作成する必要があります。関数は、重複するIDキーを持つそのようなオブジェクトを配列から削除する必要があります。アンダースコアなどのライブラリを使用せずにこれを行う必要があります。

この関数のコードを書いてみましょう-

このためのコードは-

になります
const arr = [
   {
      url: 'www.example.com/hello',
      id: "22"
   },
   {
      url: 'www.example.com/hello',
      id: "22"
   },
   {
      url: 'www.example.com/hello−how−are−you',
      id: "23"
   },
   {
      url: 'www.example.com/i−like−cats',
      id: "24"
   },
   {
      url: 'www.example.com/i−like−pie',
      id: "25"
   }
];
const removeDuplicate = (arr = []) => {
   const map = {};
   for(let i = 0; i < arr.length; ){
      const { id } = arr[i];
      if(map.hasOwnProperty(id)){
         arr.splice(i, 1);
      }else{
         map[id] = true;
         i++;
      };
   };
};
removeDuplicate(arr);
console.log(arr);

出力

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

になります
[
   { url: 'www.example.com/hello', id: '22' },
   { url: 'www.example.com/hello-how-are-you', id: '23' },
   { url: 'www.example.com/i-like-cats', id: '24' },
   { url: 'www.example.com/i-like-pie', id: '25' }
]

  1. JavaScriptで配列からfalse値を削除するにはどうすればよいですか?

    Javascriptライブラリunderscore.js _.compact()を提供しました すべてのfalseを削除する方法 配列内の値。配列のfalse値は、NaN、未定義、空の文字列、false、および0に他なりません。出力としてfalse値のない新しい配列を返します。 構文 _.compact( array ); パラメータとして配列を受け取り、 falseのない新しい配列を返します 値。 例 <html> <body>    <script type="text/javascript"  

  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" />