15.06.2022, 14:54
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Вернуть массив заданного размера
Нужно чтобы число, передаваемое в функцию указывало на ее размер. Ф-ция должна вернуть массив заданной размерности, каждым элементом которого будет ф-ция, которая возвращает свой индекс в массиве.
Пример работы: createArrayOfFunctions(9)[5](); // 5
Помогите плиз, пытаюсь сделать, получаю пустой массив:
const createArrOfFunc = num => {
let arr = [];
if (typeof number !== 'number') { return null; }
for (let i = number; i < number; i += 1) {
function func(i) {
return i;
}
arr.push(func);
}
return arr;
}
Последний раз редактировалось NovichokJS, 15.06.2022 в 15:16.
|
|
15.06.2022, 15:19
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от NovichokJS
|
ф-ция, которая возвращает свой индекс в массиве.
|
const createArrOfFunc = length => {
let arr = Array.from({
length
}, _ => function fn() {
return arr.indexOf(fn)
})
return arr;
}
let a = createArrOfFunc(5);
alert(a[2]());
|
|
15.06.2022, 15:31
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
Сообщение от NovichokJS
|
вернуть массив заданной размерности
|
Размерность и размер массива это две большие разницы.
|
|
15.06.2022, 16:03
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
const createArrOfFunc = length => Array.from({length}, (_, v) => _ => v);
|
|
15.06.2022, 16:12
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
рони, мне показалось ты малость перемудрил...
const createArrOfFunc = length => {
let arr = Array.from(
{length},
(val, i) => _ => i
)
return arr;
}
let a = createArrOfFunc(5);
alert(a[2]());
|
|
15.06.2022, 16:13
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Опередили...
|
|
15.06.2022, 16:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от ksa
|
перемудрил...
|
Сообщение от NovichokJS
|
ф-ция, которая возвращает свой индекс в массиве.
|
ой ...
const createArrOfFunc = length => {
let arr = Array.from(
{length},
(val, i) => _ => i
)
return arr;
}
let a = createArrOfFunc(5);
a.splice(2, 1);
alert(a[2]());
|
|
15.06.2022, 16:45
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
рони, вона ты докуда занырнул!
|
|
15.06.2022, 17:34
|
Профессор
|
|
Регистрация: 25.04.2022
Сообщений: 159
|
|
Сообщение от рони
|
ой ...
const createArrOfFunc = length => {
let arr = Array.from(
{length},
(val, i) => _ => i
)
return arr;
}
let a = createArrOfFunc(5);
a.splice(2, 1);
alert(a[2]());
|
Ф-ция должна вернуть массив заданной размерности, каждым элементом которого будет ф-ция, которая возвращает свой индекс в массиве.
При выполнении вашего кода получается массив из анонимных функций:
[
[Function (anonymous)],
[Function (anonymous)],
[Function (anonymous)],
[Function (anonymous)]
]
3
|
|
15.06.2022, 17:48
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
Функция может либо иметь имя, либо быть анонимной.
А какие имена должны быть у этих функций?
Так размер массива или размерность?
[0,1,2,3,4] - это массив размерности 1 (размер - 5)
[
[1,2,3],
[4,5,6],
[7,8,9]
] - это массив размерности 2
Последний раз редактировалось voraa, 15.06.2022 в 17:52.
|
|
|
|