Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2018, 09:46
Аспирант
Отправить личное сообщение для Svorg Посмотреть профиль Найти все сообщения от Svorg
 
Регистрация: 16.11.2018
Сообщений: 38

Как минимумом операций заполнить или лучше сразу объявить массив ц.чисел от X до Y?
Здрасьте!
У меня тут в одной из задач "какой-то кастрированный урезанный JS".
Большинства методов нету, объекта Array нету, даже инкремента/декремента нету.
Дополнительная фишка в том что "оно" как-то типа считает вызовы операторов и если превышен лимит - тупо отменяет выполнение.
А мне "там" надо воплотить и использовать массив целых чисел, заполненный подряд по возрастанию начиная от заданного числа и до конца массива (тоже заданное число).
  1. Например задано: размер массива 10, начальное 400;
  2. Тогда нужен массив: [400,401,402,403,404,405,406,407,408,409];
Нагуглил кучу способов, но они или не работают в урезанных условиях, или жрут много операций.
Да и вообще от циклов хотелось бы избавиться. Может кто знает совсем тайные секретные фишки?
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2018, 10:18
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Svorg
массив целых чисел, заполненный подряд по возрастанию начиная от заданного числа
А зачем нужен такой массив, каждый элемент которого вычислим по начальному значению и индексу?

var startValue = 400,  index = 5;

var currValue = startValue + index;
alert(currValue);

Последний раз редактировалось Dilettante_Pro, 16.11.2018 в 10:21.
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2018, 10:20
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,706

Сообщение от Svorg
объекта Array нету
А что такое тогда массив, если объекта Array нет?

var start = 400 - 1,
    arrayLength = 10,
    max = start + arrayLength,
    result = [];

while (start <= max)
    result.push(start += 1);

alert(result);
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2018, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

заполнение массива es6
Svorg,
function createArray(length, initItem, increment = 1 )
{
   return Array.from({length}, (_,index) => initItem + increment * index)
}
alert(JSON.stringify(createArray(10, 400), null, 0));

Последний раз редактировалось рони, 16.11.2018 в 11:32.
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2018, 12:09
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

мои 5 копеек )

<script>
  createArray = (from, count) => {
    return Array(count).fill().map((_, i) => from + i)
  }
  console.log(createArray(400, 10))
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2018, 12:10
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
Там походу нет constructor и соответственно нет его статических методов.
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2018, 12:17
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Если нет методов то пора подключать полифилл ) https://github.com/es-shims/es5-shim
Ответить с цитированием
  #8 (permalink)  
Старый 16.11.2018, 12:46
Аспирант
Отправить личное сообщение для Svorg Посмотреть профиль Найти все сообщения от Svorg
 
Регистрация: 16.11.2018
Сообщений: 38

Невозможно что-либо подключать. Обходиться тем что имеется. А имеется мало.
Кстати объявлять функции тоже нельзя)))
Цитата:
var A=[4,"test",null];
return A;
Цитата:
<OK> [4, "test", null]
Цитата:
var A=new Array(...);
return A;
Цитата:
<ERROR> undefined identifier 'new' in line 1
Цитата:
var A=Array.from(...);
return A;
Цитата:
<ERROR> undefined identifier 'Array' in line 1

Цитата:
А зачем нужен такой массив, каждый элемент которого вычислим по начальному значению и индексу?
Его требуется передавать параметром в доступные внутрибиблиотечные функции/методы. А последние заточены только под "дайте массив целых чисел!".
Ответить с цитированием
  #9 (permalink)  
Старый 16.11.2018, 12:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Svorg,
Вот так должно сработать
var arr = [],
x = 400-1;
for (var i = 0; i<10; i+=1) arr[i] = x+=1;
Ответить с цитированием
  #10 (permalink)  
Старый 16.11.2018, 12:55
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

<script>
  var arr = []
  for (var i = 0; i < 10; i++) arr[i] = 400 + i
  console.log(arr)
</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше всего заполнить web sql ? Archiolidius Javascript под браузер 1 04.02.2013 10:12
Как лучше обновить массив? Tek AJAX и COMET 6 23.02.2012 17:20
написал коряво плагин на JS - он работает, а как сделать лучше? Теги: Массив, replace alexben Общие вопросы Javascript 2 11.02.2012 15:21
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Как лучше сделать глобальный массив skyfish AJAX и COMET 4 17.02.2009 18:05