16.11.2018, 09:46
|
Аспирант
|
|
Регистрация: 16.11.2018
Сообщений: 38
|
|
Как минимумом операций заполнить или лучше сразу объявить массив ц.чисел от X до Y?
Здрасьте!
У меня тут в одной из задач "какой-то кастрированный урезанный JS".
Большинства методов нету, объекта Array нету, даже инкремента/декремента нету.
Дополнительная фишка в том что "оно" как-то типа считает вызовы операторов и если превышен лимит - тупо отменяет выполнение.
А мне "там" надо воплотить и использовать массив целых чисел, заполненный подряд по возрастанию начиная от заданного числа и до конца массива (тоже заданное число). - Например задано: размер массива 10, начальное 400;
- Тогда нужен массив: [400,401,402,403,404,405,406,407,408,409];
Нагуглил кучу способов, но они или не работают в урезанных условиях, или жрут много операций.
Да и вообще от циклов хотелось бы избавиться. Может кто знает совсем тайные секретные фишки?
Спасибо!
|
|
16.11.2018, 10:18
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Svorg
|
массив целых чисел, заполненный подряд по возрастанию начиная от заданного числа
|
А зачем нужен такой массив, каждый элемент которого вычислим по начальному значению и индексу?
var startValue = 400, index = 5;
var currValue = startValue + index;
alert(currValue);
Последний раз редактировалось Dilettante_Pro, 16.11.2018 в 10:21.
|
|
16.11.2018, 10:20
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Сообщение от Svorg
|
объекта Array нету
|
А что такое тогда массив, если объекта Array нет?
var start = 400 - 1,
arrayLength = 10,
max = start + arrayLength,
result = [];
while (start <= max)
result.push(start += 1);
alert(result);
|
|
16.11.2018, 11:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
заполнение массива 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.
|
|
16.11.2018, 12:09
|
|
Профессор
|
|
Регистрация: 08.11.2017
Сообщений: 641
|
|
мои 5 копеек )
<script>
createArray = (from, count) => {
return Array(count).fill().map((_, i) => from + i)
}
console.log(createArray(400, 10))
</script>
|
|
16.11.2018, 12:10
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
рони,
Там походу нет constructor и соответственно нет его статических методов.
|
|
16.11.2018, 12:46
|
Аспирант
|
|
Регистрация: 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
|
|
Цитата:
|
А зачем нужен такой массив, каждый элемент которого вычислим по начальному значению и индексу?
|
Его требуется передавать параметром в доступные внутрибиблиотечные функции/методы. А последние заточены только под "дайте массив целых чисел!".
|
|
16.11.2018, 12:51
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Svorg,
Вот так должно сработать
var arr = [],
x = 400-1;
for (var i = 0; i<10; i+=1) arr[i] = x+=1;
|
|
16.11.2018, 12:55
|
|
Профессор
|
|
Регистрация: 08.11.2017
Сообщений: 641
|
|
<script>
var arr = []
for (var i = 0; i < 10; i++) arr[i] = 400 + i
console.log(arr)
</script>
|
|
|
|