Всем привет, это мой первый пост на Medium (даааа!).

В этом посте я хочу поделиться тем, что я узнал о типах структур данных, которые я обычно использую, и о том, как реализовать их в коде Javascript. Без лишних слов, приступим.

  1. Массив

Массив - это наиболее используемая структура данных в javascript. В отличие от большинства языков программирования, массив javascript может содержать разные типы данных (числа, строки, объекты или функции). Есть 6 встроенных функций массивов: push, pop, shift, unshift, slice и splice. Я приведу все примеры ниже:

1. Push (time compexity = O(1))
The push() method adds new items to the end of an array, and returns the new length.
let colors = ["green", "blue", "white", "black"];
colors.push("red");
console.log(colors);
//expected value: ["green", "blue", "white", "black", "red"];
2. Unshift (time compexity = O(n))
The unshift() method adds new items to the beginning of an array, and returns the new length.
let colors = ["green", "blue", "white", "black"];
colors.unshift("red", "gold");
console.log(colors);
//expected value: ["red", "gold", "green", "blue", "white", "black"];
3. Pop (time compexity = O(1))
The pop() method removes the last element of an array, and returns the removed item.
let colors = ["green", "blue", "white", "black"];
colors.pop();
console.log(colors);
//expected value: ["green", "blue", "white"];
4. Shift (time compexity = O(n))
The shift() method removes the first element of an array, and return the removed item.
let colors = ["green", "blue", "white", "black"];
colors.shift();
console.log(colors);
//expected value: ["blue", "white", "black"];
5. Slice (time compexity = O(n))
The slice() method returns the selected elements in an array, as a new array object.
syntax = array.slice(firstElement, lastElement+1)
so, if we want to slice the "green" (index 0) and "blue"(index 1), we decide the firstElement as 0 and the lastElement as 1. So it would be array.slice(0, 1+1).
let colors = ["green", "blue", "white", "black"];
const sliceColors = colors.slice(0, 2);
console.log(sliceColors);
//expected value: ["green", "blue"];
6. Splice (time compexity = O(n))
The splice() method changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.
const colors = ["green", "blue", "white", "black"];
colors.splice(1, 0, "gold");
console.log(colors);
//expexted value: ["green", "gold", "blue", "white", "black"];

для доступа к массиву вы можете просто использовать индекс значения, которое вы хотите получить:

7. Access an array (time compexity = O(1))
const colors = ["blue", "green"];
let say you want to get value "green"
console.log(colors[1]) //expected value: "green" 

2. Объект

Если вы хотите хранить свои данные с идентификатором, вы можете использовать объект для хранения ваших данных.

const cars = {
 wheels: 4,
 color: "red",
 price: 100000,
 currency: "USD"
}
console.log(cars.wheels) //expected result= 4
console.log(cars.currency) //expected result = "USD"
Adding more property:
cars.dealer = "Honda"
console.log(cars) 
// expected result = const cars = {
 wheels: 4,
 color: "red",
 price: 100000,
 currency: "USD",
 dealer: "Honda"
}

3. Хэш-карты

Hashmap очень похож на объект Javascript, основное отличие заключается в том, что ключ в Hashmap может быть любым значением (включая функции, объекты или любой примитив), а ключ в Object должен быть либо строкой, либо символом. Более подробное сравнение вы можете увидеть по этой ссылке.

const cars = new Map();
add property using "set" method
cars.set("wheels", 4);
cars.set("color", "red");
get the value of a key using "get" method
cars.get("wheels") //expected result = 4

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



4. Установить

Set аналогичен Array, разница в том, что каждое значение в Set должно быть уникальным. Это может быть полезно, если вы хотите избежать дублирования значений в наборе данных. Например, вы хотите реализовать объединение, пересечение или различие между двумя наборами данных.

const set1 = new Set(["red", "green", "blue"]);
const set2 = new Set(["white","purple", "red"]);
console.log(new Set([...set1, ...set2])
//expected result = Set { 'red', 'green', 'blue', 'white', 'purple' }

Вы можете прочитать эту статью, чтобы узнать больше о Set:



Думаю, на этом пока все. Увидимся в следующем посте. Хорошего дня!

Источники:







Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set