Содержание
- 2. Массивы – общие сведения Массив – разновидность объекта, которая предназначена для хранения пронумерованных значений и предлагает
- 3. Особенности массивов в JavaScript 1. Гетерогенные: элементы могут иметь разные типы. 2. Динамические: меняют размер по
- 4. Создание массива Способ 1: литерал массива. var a = []; // пустой массив var b =
- 5. Способ 2: функция Array() (вызывается с new или без): Без аргументов – пустой массив длины 0
- 6. var a = new Array(); // => [] var b = new Array(2); // => [
- 7. Доступ к элементам и индексы Любой массив – это объект. Любой объект – это коллекция свойств
- 9. Примеры показывают состав индексов массива: var a = []; // индексов нет a[0] = 10; //
- 10. Многомерные массивы var matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
- 11. Свойство length Любой массив имеет свойство length. Интуитивно: это «длина» массива, т.е. количество элементов в нём.
- 12. var a = []; // length = 0 a[0] = 10; // length = 1 a[10]
- 13. Свойство length можно изменять. Уменьшение length приводит к «усечению» массива – исчезают элементы и индексы: var
- 14. Обход массива var a = [10, 20, 30]; Обычно обход выполняется при помощи for: for(var i
- 15. Пропускаем несуществующие и undefined-элементы: for(var i = 0; i if (a[i] === undefined) continue; // тело
- 16. Для обхода «сильно» разреженного массива можно применить цикл for/in: for(var index in sparseArray) { var value
- 17. Методы массивов Каждый массив обладает набором методов, изначально определённых в объекте Array.prototype. Многие из этих методов
- 18. Преобразование массива в строку join(separator) – вызывает у каждого элемента toString(), получившиеся результаты соединяет, используя указанную
- 19. Методы преобразования в строку перебирают индексы массива от 0 до length-1. Их не интересует фактическое наличие
- 20. var number = 1337; var date = new Date(); var myArr = [number, date, 'foo']; var
- 21. Метод split split(s) позволяет превратить строку в массив, разбив ее по разделителю s var names =
- 22. необязательный второй аргумент split – ограничение на количество элементов в массиве. Если их больше, чем указано
- 23. Массив как стек pop() Удаляет последний элемент из массива и возвращает удалённое значение. push(element1, ..., elementN)
- 24. var stack = [2, 3]; var popped = stack.pop(); // stack = [2], popped = 3
- 25. shift() Удаляет и возвращает первый элемент массива, смещая последующие элементы к началу. unshift(element1,...,elementN) Добавляет элементы в
- 26. var queue = [2, 3]; var first = queue.shift(); // queue = [3], first = 2
- 28. fruits.shift(); fruits.pop();
- 29. *var styles = ["Джаз", "Блюз"]; styles.push("Рок-н-Ролл"); styles[styles.length - 2] = "Классика"; alert( styles.shift() ); styles.unshift("Рэп", "Регги");
- 30. Изменение порядка элементов reverse() На месте обращает порядок следования элементов массива. sort(compareFunction) На месте сортирует массив
- 31. var a = [1, 11, 2, -3]; a.sort(); // [-3, 1, 11, 2] var arr =
- 32. function compareNumeric(a, b) { if (a > b) return 1; if (a } var arr =
- 33. увидеть значения, с которыми sort вызывает функцию сравнения [1, -2, 15, 2, 0, 8].sort(function(a, b) {
- 34. concat(elementOrArray1,...,elementOrArrayN) Возвращает новый массив, состоящий из массива, на котором он был вызван, соединённого с другими массивами
- 35. var a = [1]; var b = a.concat(2, 3); // [1, 2, 3] var c =
- 36. var arr = [1, 2]; var newArr = arr.concat(arr,[3, 4], 5); alert( newArr ); // 1,2,1,2,3,4,5
- 37. Если в качестве аргумента передать методу concat() разреженный массив, он будет присоединён со всеми своими «дырами»:
- 38. slice(begin [,end]) Возвращает копию части массива в виде нового массива. Возвращаются элементы с индексами от begin
- 39. var a = [10, 20, 30, 40, 50]; var b = a.slice(1, 3); // [20, 30]
- 40. Метод slice() в разреженном массиве воспринимает последовательность индексов непрерывной: var a = [1, , , ,
- 41. splice(start, deleteCount, [item1],...,[itemN]) Удалить deleteCount элементов, начиная с номера start, а затем вставить item1, ..., itemN
- 42. var a = [10, 20, 30, 40, 50]; var b = a.splice(1, 3); // a=[10, 50],
- 43. Метод splice() в разреженном массиве ведёт себя подобно методу slice() (считает последовательность индексов непрерывной): // a:
- 44. var arr = [1, 2, 5] ; // начиная с позиции индексом -1 (перед последним //элементом)
- 45. Поиск элементов indexOf(element [,startIndex]) lastIndexOf(element [,startIndex]) Методы ищут указанный элемент в массиве и возвращают первую позицию
- 46. var arr = [1, 0, false]; alert( arr.indexOf(0) ); // 1 alert( arr.indexOf(false) ); // 2
- 47. Поиск с проверкой поддержки браузером метода indexOf // создаем пустой массив и проверяем поддерживается ли //indexOf
- 48. Object.keys(obj) Позволяет работать со свойствами в виде массива var user = { name: "Петя", age: 30
- 49. Массив ‒ это объект, в функцию он передаётся по ссылке: function eat(arr) { arr.pop(); } var
- 50. можно присваивать в массив любые свойства: var fruits = []; // создать массив fruits[99999] = 5;
- 51. var arr = [1, 2, 3]; var arr2 = arr; arr2[0] = 5; //результат? alert( arr[0]
- 52. arr2 == arr true var arr2 = []; for (var i = 0; i arr2[i] =
- 53. alert( new Array(4).join("ля") ); ляляля
- 54. Методы перебора элементов Эти пять методов появились в ECMAScript 5. Методы принимают функцию f(), выполняемую для
- 55. var arr = [1, -1, 2, -2, 3]; function isPositive(number) { return number > 0; }
- 56. var arr = ["Яблоко", "Апельсин", "Груша"]; arr.forEach(function(item, i, arr) { alert( i + ": " +
- 57. var names = ['HTML', 'CSS', 'JavaScript']; var nameLengths = names.map(function(name) { return name.length; }); // получили
- 58. var a = [1, 2, -3, 4, 5]; var all = a.every(function(x){ return x > 0;});//false
- 59. Редукция элементов reduce(callback [,initialValue]) reduceRight(callback [,initialValue]) Методы (ECMAScript 5) формируют из массива скалярное значение при помощи
- 60. Если есть начальное значение ‒ initialValue, то на первом вызове значение аккумулятора будет равно initialValue, а
- 61. var arr = [1, 2, 3, 4, 5] // для каждого элемента массива запустить функцию, //
- 62. var sum = function(prev, cur, index, arr){ return prev + cur;}; var res = [1, 2,
- 63. Проверка на массив Array.isArray(obj) Этот статический метод поверяет, является ли obj массивом, и возвращает true или
- 64. Сводная таблица методов и свойств
- 65. Объекты, подобные массивам Это объекты, обладающие индексами и свойством length. «Похожесть» на массивы позволяет применять к
- 67. Скачать презентацию