Заметки по работе с массивами в JavaScript

Ромчик
0

JavaScriptДоброго времени суток. В данной статье мы поговорим о работе с массивами JavaScript. Это статья является свободным переводом статьи размещенной на сайте http://jquery-howto.blogspot.com. В данной статье будут рассмотрены некоторые особенности работы с массивами в JavaScript.

Массивы в JavaScript являются объектами

Массивы в JavaScript являются объектами. Понимание этого значительно помогает разобраться в самом языке. Мы просто должны помнить правила работы с объектами.

Ключ массива – это имена свойств объекта. Поэтому, ключ массива не может начинаться с цифры. Мы должны использовать [‘’] для доступа к ключам. Пример:


var array = [1, 2, 'three', 4, 5]; // or 'new Array()'
array.0    // SyntaxError: Unexpected number
array[0]   // 1
array[2]   // 'three'

Ключи массива в JavaScript – это строки

Ключи массива в JavaScript являются строками. При доступе к элементу массива с целым числом, JavaScript переведет это число в строку.

Пример:

var array = [1, 2, 'three', 4, 5];
array[1]                 // 2
array['1']               // 2
array['3'] == array[3]   // 'true'
array['03'] == array[3]  // 'false' – потому, что array['03'] != array['3']
array['03'] == array[03] // 'false' – потому, что число 03 при переводе в строку станет '3’
[\php]</pre>
<h2>Ключи массива JavaScript должны быть положительными целыми числами</h2>
<pre>
Как и в других языках программирования ключи массива должны быть положительными целыми числами.

Пример:


var array = [1, 2, 'three', 4, 5];
array['06'] = 7;
array['str'] = 'some value';
array.prop = 'another value';

console.log( array );  // [1, 2, 'three', 4, 5]

array['6'] = 7;
console.log( array );  // [1, 2, 'three', 4, 5, undefined, 7]

Для определения массива использовать литералы [] вместо Array()

Определение нового массива через Array() неоднозначно, поэтому для определения массива предпочтительней использовать альтернативное обозначение []. Еще один плюс литералов [] – они читабельны и короче.

Пример:

// Предпочтительный метод
var array = [1, 2, 'three', 4, 5];

// Не предпочтительно
var array2 = new Array(5);

Цикл по проходу массива

Как было сказано выше массивы в JavaScript являются объектами. Таким образом, мы можем обходить массив используя петлю. Но это не рекомендуется делать. Потому что, при этом перебираются все свойства и необходимо делать проверку HasOwnProperty(). А это означает только две вещи: первое — раздутый и трудно читаемый код и второе – производительность.

Пример:

var array = [];
a[1000] = 'some value';

for (key in array) {
if (a.hasOwnProperty(key)) {
array[key]; // 'some value'
}
}

// Рекомендуется
for(var index = 0, l = array.length; index < l; index++) {
array[index]; // 'some value'
}

Проверка

И самое интересно. Так как массив в JavaScript являеться объектом класса массив, то мы можем делать проверку является ли объект массивом.

Пример:

function is(type, obj) {
var clas = Object.prototype.toString.call(obj).slice(8, -1);
return obj !== undefined && obj !== null && clas === type;
}

is('Array', [1, 2, 3]); // true

А если у нас подключен jQuery, то еще проще:

var array = [1, 2, 3];
$.type(array);     // 'array' - string
$.isArray(array);  //  true   - boolean

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

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2017 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика