Vue數組去重的多方面探究

一、使用Set數據結構

Set是ES6引入的一種新的數據結構,它類似於數組,但成員的值都是唯一的,沒有重複的值。我們可以利用Set的這個特性來做Vue數組去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr);
// output: [1, 2, 3, 4, 5]

以上代碼中,我們首先聲明了一個普通的數組arr,然後利用ES6的擴展運算符(…)和Set的構造函數來去重,最終得到一個新數組uniqueArr。

當然,這種方法也適用於對象數組去重,只需要在Set構造函數中傳入一個回調函數即可。

let arr = [{name: 'Jack'}, {name: 'Rose'}, {name: 'Jack'}];
let uniqueArr = Array.from(new Set(arr.map(item => item.name))).map(name => {
  return arr.find(item => item.name === name);
});
console.log(uniqueArr);
// output: [{name: 'Jack'}, {name: 'Rose'}]

以上代碼中,我們利用了Array.from()和map()將對象數組進行轉換,然後進行去重。

二、使用for循環

除了ES6新特性之外,我們還可以使用老牌的for循環進行Vue數組去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
for (let i = 0; i < arr.length; i++) {
  for (let j = i + 1; j < arr.length; j++) {
    if (arr[i] === arr[j]) {
      arr.splice(j, 1);
      j--;
    }
  }
}
console.log(arr);
// output: [1, 2, 3, 4, 5]

以上代碼中,我們使用了兩層循環遍曆數組,然後進行比對、刪除。這種方法適用於較小的數組,但在大型數組上效率會比較低。

三、使用filter方法

除了for循環之外,Vue數組去重還可以使用filter方法來進行篩選。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.filter((item, index) => {
  return arr.indexOf(item) === index;
});
console.log(uniqueArr);
// output: [1, 2, 3, 4, 5]

以上代碼中,我們使用了filter方法和indexOf方法來進行篩選和比對。由於indexOf方法返回的是第一個元素的下標,所以只要下標不等於當前下標,就說明出現了重複元素。

四、使用Map數據結構

除了Set之外,ES6還引入了另一種新的數據結構Map,它類似於對象,但鍵可以是任意類型(包括對象)。我們可以利用Map的這個特性來做Vue數組去重。

let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
let map = new Map();
for (let i = 0; i < arr.length; i++) {
  if (!map.has(arr[i])) {
    map.set(arr[i], true);
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr);
// output: [1, 2, 3, 4, 5]

以上代碼中,我們聲明了一個空數組uniqueArr和一個Map對象map。然後遍曆數組,如果當前元素不在Map中,就將其添加到Map中,並將該元素 push 到uniqueArr中。

五、總結

以上就是Vue數組去重的多種方法,包括使用Set/Map數據結構、for循環、filter方法等。不同的方法在不同的場景下具有不同的優缺點,我們需要根據實際情況進行選擇。同時,我們還可以根據具體需要進行自定義的數組去重方法。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/158213.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:40
下一篇 2024-11-19 00:40

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字符串進行格式化處理。 names = [‘A…

    編程 2025-04-29
  • Java創建一個有10萬個元素的數組

    本文將從以下方面對Java創建一個有10萬個元素的數組進行詳細闡述: 一、基本介紹 Java是一種面向對象的編程語言,其強大的數組功能可以支持創建大規模的多維數組以及各種複雜的數據…

    編程 2025-04-28
  • Python數組隨機分組用法介紹

    Python數組隨機分組是一個在數據分析與處理中常用的技術,它可以將一個大的數據集分成若干組,以便於進行處理和分析。本文將從多個方面對Python數組隨機分組進行詳細的闡述,包括使…

    編程 2025-04-28
  • Python數組索引位置用法介紹

    Python是一門多用途的編程語言,它有着非常強大的數據處理能力。數組是其中一個非常重要的數據類型之一。Python支持多種方式來操作數組的索引位置,我們可以從以下幾個方面對Pyt…

    編程 2025-04-28

發表回復

登錄後才能評論