Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2015, 16:35
Аватар для freeneutron
Аспирант
Отправить личное сообщение для freeneutron Посмотреть профиль Найти все сообщения от freeneutron
 
Регистрация: 23.05.2012
Сообщений: 40

new Array(n) создает неполноценный массив
Объясните пожалуйста, почему так?
Например, следующий скрипт
(new Array(1)).map(function(){alert('ok')})

должен вызвать alert('ok') 1 раз, но не делает этого
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2015, 16:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Встречный вопрос...
Что ты ожидаешь от этого?
Сообщение от freeneutron
new Array(1)
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2015, 17:01
Аватар для freeneutron
Аспирант
Отправить личное сообщение для freeneutron Посмотреть профиль Найти все сообщения от freeneutron
 
Регистрация: 23.05.2012
Сообщений: 40

Тоже что и от
[null]
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2015, 17:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

freeneutron,
перебирающие методы работают с существующими элементами массива иначе нужен простой for
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2015, 22:21
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

freeneutron, попробуй так

new Array(2).fill(1).map(x => alert(x));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2015, 23:31
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Еще есть такой вот ES3 говнохак:
Array(5).join('*').split('*').map(...);
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #7 (permalink)  
Старый 20.10.2015, 23:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Array(1000).fill(-1);
Array.from({length: 1000}, () => -1);
Array.from({length: 1000}, function() { return -1; }); 
Array.apply(null, {length: 1000}).map(function() {return -1});
Array.apply(null, {length: 1000}).map(() => -1);
Array(1000).join('-1').split('');
var array = [];
for (var i = 0; i < 1000; ++i) {
    array.push(-1);
};
var array = Array(1000);
for (var i = 0; i < array.length; array[i++] = -1);


Инициализация массива в JavaScript
Ответить с цитированием
  #8 (permalink)  
Старый 21.10.2015, 08:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от freeneutron Посмотреть сообщение
Тоже что и от
[null]
Уже хорошо.
Но уже ответили
Сообщение от рони Посмотреть сообщение
перебирающие методы работают с существующими элементами массива иначе нужен простой for
Ответить с цитированием
  #9 (permalink)  
Старый 22.10.2015, 15:52
Аватар для freeneutron
Аспирант
Отправить личное сообщение для freeneutron Посмотреть профиль Найти все сообщения от freeneutron
 
Регистрация: 23.05.2012
Сообщений: 40

Понятно все. Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
Отправить, когда четко соберется массив vas88811 Events/DOM/Window 11 26.02.2014 21:55
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30