Hướng dẫn merge 2 object arrays javascript without duplicates - hợp nhất 2 mảng đối tượng javascript mà không trùng lặp

Tiểu sử

Giả sử tôi có một loạt các đối tượng ban đầu:

var initialData = [
    {
        'ID': 1,
        'FirstName': 'Sally'
    },
    {
        'ID': 2,
        'FirstName': 'Jim'
    },
    {
        'ID': 3,
        'FirstName': 'Bob'
    }
];

Sau đó tôi nhận được dữ liệu mới [một mảng đối tượng khác]:

var newData = [
    {
        'ID': 2,
        'FirstName': 'Jim'
    },
    {
        'ID': 4,
        'FirstName': 'Tom'
    },
    {
        'ID': 5,
        'FirstName': 'George'
    }
];

Mục tiêu

Tôi muốn hợp nhất dữ liệu mới vào dữ liệu ban đầu. Tuy nhiên, tôi không muốn ghi đè lên bất kỳ đối tượng nào trong mảng dữ liệu ban đầu. Tôi chỉ muốn thêm vào các đối tượng chưa có ở đó.

Tôi biết các đối tượng là các bản sao dựa trên khóa 'ID' của chúng.

Những gì tôi đã thử

Tôi biết tôi có thể làm điều này bằng cách lặp qua dữ liệu mới, kiểm tra xem liệu nó có tồn tại trong dữ liệu ban đầu không và nếu không, đẩy vào dữ liệu ban đầu.

for [ var i = 0, l = newData.length; i < l; i++  ] {

    if [ ! key_exists[ newData[i].key, initialData ] ] {  // key_exists[] is a function that uses .filter[] to test.

        initialData.push[ newData[i] ];

    }


}

Tôi lo ngại về hiệu suất, mặc dù. Tôi biết có rất nhiều cách thao tác ES6 mới, vì vậy tôi hy vọng ai đó có ý tưởng tốt hơn.

Câu hỏi

Cách tốt nhất [tốt nhất như trong hiệu suất tốt nhất] của việc hợp nhất dữ liệu mới vào dữ liệu ban đầu, trong khi bỏ qua các bản sao trong dữ liệu mới?

Để hợp nhất các phần tử từ mảng này sang mảng khác, trước tiên chúng ta phải lặp [vòng lặp] thông qua tất cả các phần tử mảng. Trong vòng lặp, chúng tôi sẽ truy xuất từng phần tử từ một mảng và chèn [sử dụng phương thức đẩy mảng []] sang một mảng khác. Bây giờ, chúng ta có thể gọi hàm Merge [] và chuyển hai mảng làm đối số để hợp nhất.15-OCT-2021

Kết hợp 2 mảng với các đối tượng ”và loại bỏ đối tượng sao chép javaScript với các ví dụ mã

var merged = [...initialData, ...newData.filter[d => !ids.has[d.ID]]];

Chúng tôi sẽ sử dụng lập trình trong bài học này để cố gắng giải quyết các mảng 2 kết hợp với các đối tượng, và xóa đối tượng sao chép câu đố JavaScript. Điều này được thể hiện bằng mã sau.

// Join Without Dupes.
const joinWithoutDupes = [A, B] => {
  const a = new Set[A.map[x => x.item]]
  const b = new Set[B.map[x => x.item]]
  return [...A.filter[x => !b.has[x.item]], ...B.filter[x => !a.has[x.item]]]
}

// Proof.
const output = joinWithoutDupes[[{item:"apple",description: "lorem"},{item:"peach",description: "impsum"}], [{item:"apple", description: "dolor"},{item:"grape", description: "enum"}]]
console.log[output]

Có một số cách tiếp cận khác nhau mà người ta có thể thực hiện để giải quyết cùng một vấn đề kết hợp 2 mảng với các đối tượng, và loại bỏ các bản sao đối tượng JavaScript. Các đoạn sau đây sẽ kiểm tra các giải pháp tiềm năng khác nhau khác nhau.

Bằng cách kiểm tra các trường hợp trong thế giới thực khác nhau, chúng tôi đã chỉ ra cách khắc phục các mảng kết hợp 2 mảng với các đối tượng và loại bỏ các bản sao đối tượng Bug JavaScript.

Làm thế nào hợp nhất hai mảng và loại bỏ các bản sao?

  • 5 cách hợp nhất hai mảng và loại bỏ các bản sao trong JavaScript
  • Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng Concat [] và Filter []
  • Hợp nhất mảng và các mục khử trùng lặp bằng toán tử tập hợp và lan truyền.
  • Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng set và concat []

Hợp nhất các mảng và các mục khử trùng lặp bằng cách sử dụng trong khi Loop và Concat []

Làm thế nào để bạn loại bỏ các đối tượng trùng lặp khỏi mảng các đối tượng trong JS?

Để loại bỏ các bản sao khỏi một mảng các đối tượng: sử dụng mảng. Phương thức bộ lọc [] để lọc mảng các đối tượng. Chỉ bao gồm các đối tượng có ID duy nhất trong mảng mới.25-JUL-2022

Phương thức Concat [] Concatenates [tham gia] hai hoặc nhiều mảng. Phương thức Concat [] trả về một mảng mới, chứa các mảng đã tham gia. Phương thức Concat [] không thay đổi các mảng hiện có.

Làm cách nào để hợp nhất hai mảng trong TypeScript mà không sao chép?

Concat [] có thể được sử dụng để hợp nhất nhiều mảng với nhau. Nhưng, nó không loại bỏ các bản sao. Filter [] được sử dụng để xác định xem một mục có mặt trong Merged_Array hay không.10-JUL-2020

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

JavaScript loại bỏ trùng lặp trong hai mảng

  • mảng1 = mảng1. bộ lọc [function [val] {
  • trả về mảng2. indexof [val] == -1;
  • }];
  • // Hoặc, với sự sẵn có của ES6:
  • mảng1 = mảng1. bộ lọc [val =>! mảng2. Bao gồm [val]];

mảng1 = mảng1. bộ lọc [val =>! mảng2. Bao gồm [val]];

Làm thế nào để bạn kết hợp hai mảng mà không có giá trị trùng lặp trong Java?

  • Làm thế nào để hợp nhất hai mảng thành một mảng được sắp xếp mà không sao chép trong Java?
  • Bước 1: Hợp nhất hai mảng. Đặt Arraya và Arrayb là hai mảng đầu vào.
  • Bước 2: Loại bỏ các bản sao khỏi mảng hợp nhất. Trong bước thứ hai, chúng tôi loại bỏ các phần tử trùng lặp khỏi MergedArray.

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

Để xóa một đối tượng khỏi một mảng trong JavaScript,

  • pop [] - phương thức pop [] loại bỏ từ cuối một mảng.
  • splice [] - Phương thức splice [] xóa khỏi một chỉ mục mảng cụ thể.
  • Shift [] - Phương thức Shift [] loại bỏ từ đầu một mảng.

Hàm nào loại bỏ các giá trị trùng lặp khỏi một mảng?

Trả lời: Sử dụng phương thức indexof [] Bạn có thể sử dụng phương thức indexof [] trong liên hợp với push [] Xóa các giá trị trùng lặp khỏi một mảng hoặc nhận tất cả các giá trị duy nhất từ ​​một mảng trong javascript.

Làm cách nào để loại bỏ các bản sao khỏi danh sách?

Approach:

  • Nhận danh sách mảng với các giá trị trùng lặp.
  • Tạo một danh sách mới từ ArrayList này.
  • Sử dụng luồng []. Phương thức khác biệt [] trả về luồng đối tượng khác biệt.
  • Chuyển đổi luồng đối tượng này thành danh sách.

Làm thế nào để bạn hợp nhất mảng?

Để hợp nhất các phần tử từ mảng này sang mảng khác, trước tiên chúng ta phải lặp [vòng lặp] thông qua tất cả các phần tử mảng. Trong vòng lặp, chúng tôi sẽ truy xuất từng phần tử từ một mảng và chèn [sử dụng phương thức đẩy mảng []] sang một mảng khác. Bây giờ, chúng ta có thể gọi hàm Merge [] và chuyển hai mảng làm đối số để hợp nhất.15-OCT-2021

Bài Viết Liên Quan

Chủ Đề