Javascript-джедай #24 - Массивы

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

Актуально даже спустя 6 лет. Основы, полезны всегда. Хоть сейчас и пишут на ES6

alexfish
Автор

когда слышу голос в этих видео то меня не покидает чувство, что голос синтезирован. Sorax ar u robot? )
видео высокого класса, ты умеешь хорошо подавать материал. благодарю за проделанную работу.

VladGohn
Автор

Спасибо. Первый урок который я понял с первого раза :)

GameNex
Автор

Каждый день терь по видюхи делаешь) Спасибо большое.

lvorzys
Автор

Да вы нас балуете! :) Спасибо за урок.

mishaKantsev
Автор

КОнспект
Массив - упорядоченный набор элементов, каждый из которых имеет индекс(в
большинстве
случаев номер, но не обязательно, главное не отрицательное целое число)

к отдельному элементу массива можно обращаться по его индексу
var array = [1, 3, 5, 55];
var months = ["January", "February", "March", "April"];
начинается с 0 = будет выведен 1й эл в массиве
[] это оператор поэтому между выражением(array) и ним может быть 1000 и 1 пробел
которые будут проигнорированы.
console.log(months [3]);//вернет April
undefined
элементами массива могут быть кто угодно, в тч объекты и другие массивы
months[20] = "Something";//добавлять элементы не обязательно в конец массива
array.length это номер последнего элемента +1, а не количество заполненных мест
var myArray = [, , , 43]; //таким образом можно инициализировать массив где элемент с
индексом 3 будет 43, а остальные undefined;
var strangeArray = [, , ]//в таком массив будет 2 элемента тк допустима лишняя,
в конце литерала.
На самом деле индексы являются строками с которыми связываются элементы
так что можно в кач индекса использовать любую строку.
Элементы массива ведут себя аналогично свойствам объекта только синтаксис другой
strangeArray["someProperty"] = "someValue";
array.length=2;//если присвоить длине.массива значение меньшее чем нынешнее, все
элементы с индексом >2 будут удалены из массива
delete.months[3]; = months[3] = undefined;
6:00Методы для массивов
var array = ["someString", "anotherString", "thirdString"];
console.log(array.join(" ++ "));//принимает в кач аргумента разделитель и возвращает
//строку из элементов массива разделенную указанным разделителем
array.reverse();//возвращает обратный массив
console.log(array);
array.sort(func());//без аргумента сортирует в алфавитном порядке, в аргументе
//можно указать функцию которая будет сортировать по-другому.
array.concat("hello", ["here is", "someMore", "strings"]); //Конкатенирует массив
//с другим массивом или какими-то элементами, этот метод не изменяет исх. массив
//а создает новый.
array.slice(arg1, arg2);//работает так-же как и со строками, не изменяет исх. массив
array.splice(arg1, arg2, arg3, ..., argN);//нужен для удаления arg2 элементов начная с
//arg1 и для вставки на их место arg3 to argN. Возвращает удаленные элементы
array.push(arg1, ..., argN);//добавить в конец массива 1 или несколько элементов
array.unshift(arg1, ..., argN)//то же что push только в начало массива
array.pop()//не принимает аргументов, удаляет LI элемент и возвращает его
array.shift()//как pop только удаляет FI

STRIPPEDSTAR
Автор

По сравнению с 21-м уроком это просто изи :-)
после 24 уроков от Sorax-а я набираю уже код со скоростью света :-)

maksymkulya
Автор

Приятно было увидеть тебя на сайте webtheory!

vfnyfgu
Автор

Создание массива с одним аргументом new Array(34) имеет смысл для управления памятью и контролем garbage collector. всем кому интересно - копать в сторону asm.js
В общем целом garbage collector уничтожает пустые объекты не сразу, а по хитрой неизвестной схеме. и в этот момент освобождения памяти пользователи испытывают потерю контроля над интерфейсом - пропуски клика мыши или скролинга. Если не допускать появления пустых объектов или опустошать их в определенный момент, появляется какой никакой контроль над garbage collector и улучшается UX.

justfly
Автор

Я обнаружил интересное поведение...
Определяем какой-нибудь массив с помощью конструктора класса Array:

var myArray = new Arrray("hello", "sorax");

Мы знаем, что там два элемента с индексом 0 и 1.
Добавляем элемент с индексом 3: myArray[3] = "damir";
Распечатаем: ["hello", "world", undefined, "damir"]
почему так!!???

MrOldschoolrocknroll
Автор

Зоракс спс за уроки, жду уроки по JQuery.

chosenundead
Автор

ПОМОГИТЕ!
Хотел создать функцию для создания и заполнения массивов

function massiveCreate(N, m){ // предполагается, что эта функция будет создавать массив из m элементов, с названием N (название массива)

var N = new Array(m) // присвоение (ну как мне кажется) аргументу функции N значения нового массива с количеством m элементов

for(i=0; i<m; i++){ // запускается цикл for() для заполнения нашего нового массива
N[i] = i+1 // покуда выполняется условие i < m (то есть индекс элемента меньше значения m) N[i] = i+1

}
};

console.log(massiveCreate(A, 4));

TheKirk
Автор

Никто на мой вопрос и не дал ответ. Все что ты сказал - очевидность, а почему у Sorax другое поведение, у него прям четко было ["some string", "some", 23:"string"]

MrOldschoolrocknroll
Автор

А с каких пор появился forReach в javascript?

dementorpasha
Автор

ЭТО ОЧЕНЬ Ответь пожалуйста! как ты в Sublime Text Сделал

destroyyer_winneerr
Автор

new Array(4).join("Thanks ")
про метод split забыл
про метод sort подробней хотелось бы

AltairLink
Автор

Что-то вот это больше не работает array.splice(1, 1, "Sorax", "WebDev")

eleukhin
Автор

Почему постоянно какая-то e мелькает после ;?
Раздражает уже.

arthurmorgan
Автор

3:10 *Никакого смысла в таком поведении нет*
Вы несете чушь.
В таком поведении не просто есть смысл, а без него нельзя было бы писать высокопроизводительный код.
Могли бы на коленке проверить, разницу в производительности между, расширением массивам динамически, и добавлением элементов в заранее заданный массив.

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

demimurych