Всё о массивах в JavaScript - Часть 1
Привет, читатель) Я мало рассказывал про конструкции языка, и отдавал предпочтение фреймворкам и библиотекам. Сегодня мы это исправим и поговорим про массивы. Статья будет разбита на 2 части, т.к. материала очень много.
Что такое массивы?
Массивы - это структура данных, предназначенная для хранения любых значений, и даже других массивов. Представьте себе холодильник, в котором лежат разные продукты - они в данном случае будут элементами массива. Массивы заключаются в квадратные скобки, и создаются как обычная переменная:
let fridge = ['meat', 'juice', 'cheese'];
Чтобы вызвать элемент массива, мы используем индекс элемента. Массивы отсчитываются с нуля:
fridge[0] // meat
Этого достаточно, чтобы понимать их структуру. Теперь перейдём к св-вам и методам.
Свойства
Length - Оно есть у любого типа данных в JS. Нетрудно догадаться, что данное свойство выводит длинну массива:
fridge.length // 3
Prototype - оно тоже есть у любого типа данных. Оно вам никак не может быть полезно, так что пропустим его. Забавный факт, Array.prototype будет тоже массивом:
Array.isArray(Array.prototype) // true
Методы, возвращающие boolean
Для массивов есть специальные методы, которые никак на него не воздействуют, а лишь дают информацию.
Array.isArray() проверяет, является ли переменная массивом. Этот метод ввели, потому что массив нельзя проверить typeof, т.к. он вернёт 'object':
Array.isArray( [ 0, 1, 2] ) // true typeof [ 0, 1, 2 ] // 'object'
Array.includes() проверяет наличие элемента в массиве.
[ 0, 1, 2].includes(2) // true
Методы для создания массивов
Array.from() - создаёт массив из массиво-подобного объекта или итерации
Array.from('foo') // ["f", "o", "o"];
Array.from([1, 2, 3], x => x + x) // 2 4 6
Array.of() - создаёт массив из любого типа данных
Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]
Array.of('hi', 'a')
Методы, cхожие с методами объектов
Array.prototype.entries() - выдаёт пару ключ/значение, который возвращает объект Array Iterator(в этом параграфе все методы будут возвращать этот объект); работает также как и метод Object.entries().
Пример использования с for...of:
a = ['a', 'b', 'c'];
iterator = a.entries();
for (let e of iterator) {
console.log(e);
}
// [0, 'a']
// [1, 'b']
// [2, 'c']
Array.prototype.keys() - выдаёт ключи (т.е. индексы) массива. Тоже самое что и Object.keys().
Аналогичный пример:
a = ['a', 'b', 'c'];
iterator = array1.keys();
for (let key of iterator) {
console.log(key); // 0 1 2
}
Array.prototype.values() - возвращает все значения массива. Тоже что и Object.values().
a = ['a', 'b', 'c'];
iterator = array1.values();
for (let value of iterator) {
console.log(value); // "a" "b" "c"
}
Заключение
Пока что это всё, через пару дней выйдет вторая часть, где мы рассмотрим методы по работе с индексами, изменением массивов и т.д. Спасибо за прочтение)