Всем привет, это мой первый пост на Medium (даааа!).
В этом посте я хочу поделиться тем, что я узнал о типах структур данных, которые я обычно использую, и о том, как реализовать их в коде Javascript. Без лишних слов, приступим.
- Массив
Массив - это наиболее используемая структура данных в 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