在 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"
   }
];

我們需要編寫一個 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' }
]

更新日期:21-11-2020

380 人檢視

開啟你的 職業生涯

完成課程獲取認證

開始
廣告
© . All rights reserved.