В JavaScript есть несколько встроенных структур данных, которые позволяют эффективно организовывать данные и управлять ими. Вот некоторые из наиболее часто используемых структур данных:

  1. Массивы:

Массив — это набор элементов, хранящихся в смежных ячейках памяти. Он может содержать значения любого типа, включая числа, строки, объекты и даже другие массивы. Массивы JavaScript имеют нулевой индекс, то есть доступ к первому элементу осуществляется с индексом 0. Вот пример:

const fruits = ["apple", "banana", "orange"];
console.log(fruits[0]); // Output: "apple"
console.log(fruits.length); // Output: 3
fruits.push("grape"); // Add element at the end
console.log(fruits); // Output: ["apple", "banana", "orange", "grape"]

2. Объекты:

Объекты представляют собой пары ключ-значение, где ключи представляют собой строки (или символы), а значения могут быть любого типа. Они полезны для представления объектов со свойствами. Вот пример:

const person = {
  name: "John Doe",
  age: 30,
  city: "New York"
};
console.log(person.name); // Output: "John Doe"
person.age = 31; // Update value
console.log(person.age); // Output: 31
person.job = "Developer"; // Add new property
console.log(person); // Output: { name: "John Doe", age: 31, city: "New York", job: "Developer" }

3.Наборы:

Наборы — это наборы уникальных значений, что означает, что каждое значение может встречаться в наборе только один раз. Они могут хранить значения любого типа и эффективно предоставлять методы для добавления, удаления и проверки членства. Вот пример:

const set = new Set();
set.add("apple");
set.add("banana");
set.add("apple"); // Ignored, already exists
console.log(set.size); // Output: 2
console.log(set.has("banana")); // Output: true
set.delete("banana");
console.log(set); // Output: Set { "apple" }

4. Карты:

Карты — это пары ключ-значение, похожие на объекты, но ключи могут иметь любой тип данных. Они предоставляют эффективные методы добавления, удаления и извлечения значений на основе ключей. Карты сохраняют порядок пар ключ-значение, в отличие от объектов. Вот пример:

const map = new Map();
const key1 = "name";
const key2 = { id: 1 };
map.set(key1, "John Doe");
map.set(key2, "Value associated with an object");
console.log(map.get(key1)); // Output: "John Doe"
console.log(map.size); // Output: 2
map.delete(key2);
console.log(map); // Output: Map { "name" => "John Doe" }

5. Связанные списки:

Связный список — это линейная структура данных, в которой каждый элемент (узел) содержит значение и ссылку на следующий узел. Они полезны, когда требуется частая вставка и удаление элементов. Однако произвольный доступ медленнее по сравнению с массивами. Вот упрощенный пример реализации:

class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
  }

  add(value) {
    const newNode = new Node(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = newNode;
    }
  }
}

const list = new LinkedList();
list.add("apple");
list.add("banana");
console.log(list.head.value); // Output: "apple"
console.log(list.head.next.value); // Output: "banana"

Это всего лишь несколько примеров структур данных, доступных в JavaScript. Каждая структура данных имеет свои преимущества и варианты использования, поэтому важно выбрать подходящую, исходя из ваших конкретных потребностей.

Спасибо, что прочитали эту статью 😇.