在 ES6 中,可以使用 Set 和 Spread Syntax 兩種方式,實現對 JSON 數組的去重。
首先,我們需要了解 Set 這個數據結構。它類似于數組,但是它的成員都是唯一的,沒有重復的值。創建一個 Set 的方式如下:
const mySet = new Set(); mySet.add(1); mySet.add(2); mySet.add(3); console.log(mySet); // Set {1, 2, 3}
接下來,我們來看看如何用 Set 來實現 JSON 數組的去重。代碼如下:
const arr = [{"name":"張三","age":18},{"name":"李四","age":20},{"name":"張三","age":18}]; const newArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse); console.log(newArr); // [{"name":"張三","age":18},{"name":"李四","age":20}]
代碼分為兩步。首先,我們使用 map 方法將 JSON 數組中每個對象轉換為字符串,然后用 Set 將這些字符串去重。最后,我們再使用 map 方法將去重后的字符串數組轉換回 JSON 對象數組。
除了使用 Set,我們還可以使用 Spread Syntax(展開語法)來實現 JSON 數組的去重。使用 Spread Syntax 對數組進行去重時,需要用到 Set 和 Spread Syntax 這兩種特性。代碼如下:
const arr = [{"name":"張三","age":18},{"name":"李四","age":20},{"name":"張三","age":18}]; const newArr = [...new Set(arr.map(JSON.stringify))].map(JSON.parse); console.log(newArr); // [{"name":"張三","age":18},{"name":"李四","age":20}]
這里的代碼也是分兩步。首先使用 map 方法將 JSON 數組中的每個對象轉換為字符串,然后通過 Spread Syntax 將返回的字符串數組展開成為一系列的獨立的字符串。最后使用 map 方法將這些字符串轉回為 JSON 對象數組。
上一篇vue可以拆分嗎
下一篇python 自寫控件