В дополнение ко всем приведенным выше ответам рассмотрите конструкторы специальных копий, операторы присваивания и все другие функции, которые вы должны написать для класса, которые работают с другими экземплярами . Вам понадобятся функции доступа для всех этих элементов данных.
чтобы получить массив с n случайными числами между min, max (хотя и не уникальным)
function callItWhatYouWant(n, min, max) {
return Array.apply(null, {length: n}).map(Function.call, function(){return Math.floor(Math.random()*(max-min+1)+min)})
}
ES6 решение с использованием рекурсии. Отличается от всех других решений
const range = (n, A = []) => (n === 1) ? [n, ...A] : range(n - 1, [n, ...A]);
console.log(range(5));
a = Object.keys( [].fill.call({length:7}, '' ) ).map(Number)
a.pop();
console.debug(a)
[0, 1, 2, 3, 4, 5, 6]
'_'.repeat(5).split('').map((_, i) => i + 1)
даст [1, 2, 3, 4, 5]
Azle имеет вспомогательную функцию под названием create_array , которая дает вам ряд опций:
Создать массив от 0 до 5 :
az.create_array(0, 5)
[0, 1, 2, 3, 4, 5
Создать массив от 1 до 5 :
az.create_array(1, 5)
[1, 2, 3, 4, 5]
Создайте массив из 5 массивов :
az.create_array(1, 5, ['apples','carrots','oranges'])
[[яблоки »,« морковь », "апельсины"], ["яблоки", "морковь", "апельсины"], ["яблоки", "морковь", "апельсины"], ["яблоки", "морковь", "апельсины"], ["яблоки" "," морковь "," апельсины "]]
Создать массив из 5 объектов :
az.create_array(1, 5, {"color" : "orangered"})
[{color:" orangered "}, {color : "orangered"}, {color: "orangered"}, {color: "orangered"}, {color: "orangered"}]
Создать массив из 6 случайных чисел :
az.create_array(0,5,'random') // default draws from 10
[9, 5, 4, 6, 9, 7]
Создать массив из 6 случайных чисел, взятых из 1000 :
az.create_array(0,5,'random', 1000)
[180, 372, 678, 142, 314, 438]
Вот FIDDLE
Object.keys(Array.apply(0, Array(3))).map(Number)
Возвращает [0, 1, 2]
. Очень похоже на отличный ответ Игоря Шубина , но с немного меньшим количеством хитрости (и на один символ длиннее).
Array(3) // [undefined × 3]
Создать массив длиной n = 3. К сожалению, этот массив почти бесполезен для нас, поэтому мы должны… Array.apply(0,Array(3)) // [undefined, undefined, undefined]
сделать массив повторяемым. Примечание: null более распространен, так как первый аргумент apply, но короче 0. Object.keys(Array.apply(0,Array(3))) // ['0', '1', '2']
затем получают ключи массива (работает, потому что массивы являются типом, массив - это объект с индексами для ключей. Object.keys(Array.apply(0,Array(3))).map(Number) // [0, 1, 2]
и отображение ключей, преобразование строк в числа. Самый быстрый способ заполнить Array
в v8:
[...Array(5)].map((_,i) => i);
результат будет: [0, 1, 2, 3, 4]
Array(...Array(9)).map((_, i) => i);
console.log(Array(...Array(9)).map((_, i) => i))
Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));
Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from