Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

« Продовольствие в обмен на нефть
Угадай, что прокомментировали »

JavaScript: создать массив из одной переменной

06.07.08 @ 10:30 — JavaScript

Задача: создать в JavaScript массив из одного элемента, равного значению переменной x.

Очевидное решение var a = new Array(x); — неправильно.

Если переменная x имеет тип number и является целым числом (например, x=5), то вместо массива с одним элементом, равным 5, мы получим пустой массив из пяти элементов. А если x является дробным числом (например, x = 5.2), то мы вообще получим ошибку invalid array length. Если x — строка, то решение сработает.

Причина такого поведения браузеров в том, что при создании массива через Array(x) интерпретатор ведёт себя по-разному в зависимости от типа переменной x. Если он получает тип number, то он трактует этот параметр как длину создаваемого массива, а не как значение нулевого элемента.

Правильный ответ: var a = new Array([x]);

2 Comments »

  1. можно ещё проще:
    var a = [x];

    Comment by Andrew Kulinich — 06.07.2008 @ 17:28

  2. О, точно.

    Comment by Val Petruchek — 06.07.2008 @ 18:11

RSS feed for comments on this post. TrackBack URI

Leave a comment

  
Реклама::

 
Реклама::