Hướng dẫn remove duplicate object from array javascript lodash - xóa đối tượng trùng lặp khỏi mảng javascript lodash

Đây là dữ liệu của tôi:

[
    {
        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"    
    }
]

Với Lodash, làm thế nào tôi có thể xóa các đối tượng có khóa ID trùng lặp? Một cái gì đó với bộ lọc, bản đồ và độc đáo, nhưng không hoàn toàn chắc chắn.

Bộ dữ liệu thực của tôi lớn hơn nhiều và có nhiều khóa hơn, nhưng khái niệm này phải giống nhau.

Hướng dẫn remove duplicate object from array javascript lodash - xóa đối tượng trùng lặp khỏi mảng javascript lodash

ntalbs

Phim thương hiệu vàng 27,8K88 gold badges63 silver badges81 bronze badges

hỏi ngày 31 tháng 7 năm 2015 lúc 7:10Jul 31, 2015 at 7:10

_.uniqBy(data, function (e) {
  return e.id;
});
2 không còn hoạt động cho phiên bản hiện tại của Lodash là phiên bản 4.0.0 có sự thay đổi phá vỡ này. Chức năng của
_.uniqBy(data, function (e) {
  return e.id;
});
2 được chia thành
_.uniqBy(data, function (e) {
  return e.id;
});
4,
_.uniqBy(data, function (e) {
  return e.id;
});
5,
_.uniqBy(data, function (e) {
  return e.id;
});
6 và
_.uniqBy(data, function (e) {
  return e.id;
});
7.

Bạn có thể sử dụng

_.uniqBy(data, function (e) {
  return e.id;
});
7 như thế này:

_.uniqBy(data, function (e) {
  return e.id;
});

... Hoặc như thế này:

_.uniqBy(data, 'id');

Tài liệu: https://lodash.com/docs#uniqby


Đối với các phiên bản cũ hơn của Lodash (<4.0.0):

Giả sử rằng dữ liệu phải được độc thân bởi thuộc tính

_.uniqBy(data, function (e) {
  return e.id;
});
9 của mỗi đối tượng và dữ liệu của bạn được lưu trữ trong biến
_.uniqBy(data, 'id');
0, bạn có thể sử dụng chức năng
_.uniqBy(data, 'id');
1 như thế này:

_.unique(data, function (e) {
  return e.id;
});

Hoặc đơn giản là như thế này:

_.uniq(data, 'id');

Hướng dẫn remove duplicate object from array javascript lodash - xóa đối tượng trùng lặp khỏi mảng javascript lodash

Đã trả lời ngày 31 tháng 7 năm 2015 lúc 7:17Jul 31, 2015 at 7:17

ntalbsntalbsntalbs

Phim thương hiệu vàng 27,8K88 gold badges63 silver badges81 bronze badges

3

hỏi ngày 31 tháng 7 năm 2015 lúc 7:10

Example:

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];

_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]

_.uniqBy(data, function (e) {
  return e.id;
});
2 không còn hoạt động cho phiên bản hiện tại của Lodash là phiên bản 4.0.0 có sự thay đổi phá vỡ này. Chức năng của
_.uniqBy(data, function (e) {
  return e.id;
});
2 được chia thành
_.uniqBy(data, function (e) {
  return e.id;
});
4,
_.uniqBy(data, function (e) {
  return e.id;
});
5,
_.uniqBy(data, function (e) {
  return e.id;
});
6 và
_.uniqBy(data, function (e) {
  return e.id;
});
7.

Bạn có thể sử dụng

_.uniqBy(data, function (e) {
  return e.id;
});
7 như thế này:Nov 18, 2016 at 11:33

... Hoặc như thế này:zdrsoft

Tài liệu: https://lodash.com/docs#uniqby17 silver badges10 bronze badges

2

Đối với các phiên bản cũ hơn của Lodash (<4.0.0):

var users = [
  {id:1,name:'ted'},
  {id:1,name:'ted'},
  {id:1,name:'bob'},
  {id:3,name:'sara'}
];
var uniqueUsersByID = _.uniqBy(users,'id'); //removed if had duplicate id
var uniqueUsers = _.uniqWith(users, _.isEqual);//removed complete duplicates

Source:https://www.codegrepper.com/?search_term=Lodash+remove+duplicates+from+array

Giả sử rằng dữ liệu phải được độc thân bởi thuộc tính

_.uniqBy(data, function (e) {
  return e.id;
});
9 của mỗi đối tượng và dữ liệu của bạn được lưu trữ trong biến
_.uniqBy(data, 'id');
0, bạn có thể sử dụng chức năng
_.uniqBy(data, 'id');
1 như thế này:Nov 6, 2019 at 21:06

2

Hoặc đơn giản là như thế này:

_.union([1,2,3,3], [3,5])

// [1,2,3,5]

Đã trả lời ngày 31 tháng 7 năm 2015 lúc 7:17Mar 23, 2019 at 19:55

ntalbsntalbsVixson

Bạn có thể sử dụng phương thức lodash _.uniqwith, nó có sẵn trong phiên bản hiện tại của Lodash 4.17.2.5 silver badges7 bronze badges

1

Thông tin thêm: https://lodash.com/docs/#uniqwith

_.uniq([2, 1, 2]);

Đã trả lời ngày 18 tháng 11 năm 2016 lúc 11:33Jun 9, 2020 at 12:09

ZdrsoftzdrsoftZettaP

2.11717 Huy hiệu bạc10 Huy hiệu đồng4 silver badges8 bronze badges

Với phiên bản Lodash 4+, bạn sẽ xóa các đối tượng trùng lặp bằng thuộc tính cụ thể hoặc bởi toàn bộ đối tượng như vậy:

Đã trả lời ngày 6 tháng 11 năm 2019 lúc 21:06

_.uniqBy(data, 'id');

Hoặc chỉ đơn giản là sử dụng liên minh, cho mảng đơn giản.

_.uniqBy(data, function (e) {
  return e.id;
});
0

Đã trả lời ngày 23 tháng 3 năm 2019 lúc 19:55May 26, 2019 at 21:21

Hướng dẫn remove duplicate object from array javascript lodash - xóa đối tượng trùng lặp khỏi mảng javascript lodash

VixsonvixsonHassan Ajaz

4115 Huy hiệu bạc7 Huy hiệu đồng6 silver badges13 bronze badges

Đối với một mảng đơn giản, bạn có cách tiếp cận công đoàn, nhưng bạn cũng có thể sử dụng:LODASH versions lower than 4 you will find most of this function are not implemented same way. And opposite from version 4 _.uniq was modified. I personally had a project that was in transition for a few months (from V3 -> to V4).

Đã trả lời ngày 9 tháng 6 năm 2020 lúc 12:09

_.uniqBy(data, function (e) {
  return e.id;
});
1

Zettapzettap_.uniq from version lower than 4 can be performed with both functions:

4144 Huy hiệu bạc8 Huy hiệu đồng or _.unionBy(data, 'id')

Chỉ cần sử dụng _.uniqby (). Nó tạo ra phiên bản không trùng lặp của một mảng._.uniqBy(data, 'id').

Đây là một cách mới và có sẵn từ phiên bản 4.0.0.Nov 4, 2021 at 18:15

hoặcDmitry

Đã trả lời ngày 26 tháng 5 năm 2019 lúc 21:219 bronze badges

Hassan Ajazhassan Ajaz

5736 Huy hiệu bạc13 Huy hiệu ĐồngJun 5, 2018 at 11:27

Làm thế nào để bạn loại bỏ các bản sao trong mảng các đối tượng trong lodash?

Để lọc các bản sao từ một mảng, hãy sử dụng functio uniq () của lodash. Hàm này sẽ loại bỏ bất kỳ giá trị trùng lặp khỏi mảng được cung cấp.use Lodash's uniq() functio. This function will remove any duplicate values from the provided array.

Làm cách nào để loại bỏ các bản sao trong lodash?

Chúng ta có thể loại bỏ các phần tử trùng lặp khỏi một mảng bằng phương thức _.uniq () của lodash.Phương pháp này giữ cho trường hợp đầu tiên của một phần tử và loại bỏ một phần tử còn lại.Do đó, thứ tự của một phần tử trong mảng kết quả phụ thuộc vào sự xuất hiện của nó trong mảng.using the _. uniq() method of Lodash. This method keeps the first instance of an element and removes the remaining one. Therefore, the order of an element in the resultant array depends on its occurrence in the array.

Làm thế nào bạn sẽ loại bỏ các bản sao khỏi một mảng javascript?

Để loại bỏ các bản sao khỏi một mảng: Đầu tiên, hãy chuyển đổi một mảng các bản sao thành một tập hợp.Bộ mới sẽ ngầm loại bỏ các yếu tố trùng lặp.Sau đó, chuyển đổi bộ trở lại một mảng.convert an array of duplicates to a Set . The new Set will implicitly remove duplicate elements. Then, convert the set back to an array.

Làm thế nào để bạn tìm thấy các giá trị trùng lặp trong một mảng các đối tượng bằng Lodash?

One-liner, với một số đường ES2015: const trùng lặp = _.filter (mảng, (giá trị, chỉ mục, iteratee) => _
Nó hoạt động với các đối tượng và các cấu trúc phức tạp hơn nếu bạn sử dụng _..