საიტი არის დეველოპმენტის პროცესში

ისწავლეს ლოგოᲘᲡᲬᲐᲕᲚᲔ
  • მთავარი
  • სავარჯიშოები
  • ედიტორი
  • გზამკლევი
საშუალო ციკლი მასივი მონაცემთა სტრუქტურები

კომპლექსური დუბლიკატების ფილტრაცია

მოცემულია მასივი persons.

თქვენი დავალებაა ამ მასივიდან დუბლირებული ობიექტების წაშლა.

გაითვალისწინეთ, მასივი შეიცავს მხოლოდ ერთნაირ ობიექტებს. ობიექტის ტიპი გამოიყურება შემდეგნაირად:

TS
interface Person {
  id: number;
  name: string;
}

გადაცემული პარამეტრებიდან გამომდინარე ამოცანას აუცილებლად ექნება ერთი სწორი პასუხი.

პირველი მაგალითი

პარამეტრები:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 3,
    name: "tarieli"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
  {
    id: 2,
    name: "tinati"
  },
];

შედეგი:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 3,
    name: "tarieli"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
];

განმარტება: მასივიდან გაიფილტრა id: 4-ის ობიექტი, რადგან განმეორდა ორჯერ.

მეორე მაგალითი

პარამეტრები:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 2,
    name: "tarieli"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
];

შედეგი:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
];

განმარტება: მასივიდან გაიფილტრა id: 2-ის ობიექტი, რადგან განმეორდა ორჯერ.

მესამე მაგალითი

პარამეტრები:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 3,
    name: "tarieli"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
];

შედეგი:

JS
persons = [
  {
    id: 1,
    name: "rostevani"
  },
  {
    id: 2,
    name: "tinati"
  },
  {
    id: 3,
    name: "tarieli"
  },
  {
    id: 4,
    name: "nuradin-pridon"
  },
];

განმარტება: არცეთი ელემენტი არ არის დუბლირებული, მასივი დარჩა იგივე.

ამოცანის ამოხსნა შესაძლებელია ბევრი გზით, ცადეთ ისეთი ალგორითმის მოფიქრება, რომელიც O(n)-თან ახლოს არის.

პარამეტრები
persons = [ { "id": 1, "name": "rostevani" }, { "id": 2, "name": "tinati" }, { "id": 3, "name": "tarieli" }, { "id": 4, "name": "nuradin-pridon" }, { "id": 2, "name": "tinati" } ]
მოსალოდნელი შედეგი
[ { "id": 1, "name": "rostevani" }, { "id": 2, "name": "tinati" }, { "id": 3, "name": "tarieli" }, { "id": 4, "name": "nuradin-pridon" } ]