Вернуть массив заданного размера
Нужно чтобы число, передаваемое в функцию указывало на ее размер. Ф-ция должна вернуть массив заданной размерности, каждым элементом которого будет ф-ция, которая возвращает свой индекс в массиве.
Пример работы: 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; } |
Цитата:
const createArrOfFunc = length => { let arr = Array.from({ length }, _ => function fn() { return arr.indexOf(fn) }) return arr; } let a = createArrOfFunc(5); alert(a[2]()); |
Цитата:
|
const createArrOfFunc = length => Array.from({length}, (_, v) => _ => v); :dance: |
рони, мне показалось ты малость перемудрил... :)
const createArrOfFunc = length => { let arr = Array.from( {length}, (val, i) => _ => i ) return arr; } let a = createArrOfFunc(5); alert(a[2]()); |
Опередили... :(
|
Цитата:
Цитата:
const createArrOfFunc = length => { let arr = Array.from( {length}, (val, i) => _ => i ) return arr; } let a = createArrOfFunc(5); a.splice(2, 1); alert(a[2]()); |
рони, вона ты докуда занырнул! :victory:
|
Цитата:
При выполнении вашего кода получается массив из анонимных функций: [ [Function (anonymous)], [Function (anonymous)], [Function (anonymous)], [Function (anonymous)] ] 3 |
Функция может либо иметь имя, либо быть анонимной.
А какие имена должны быть у этих функций? Так размер массива или размерность? [0,1,2,3,4] - это массив размерности 1 (размер - 5) [ [1,2,3], [4,5,6], [7,8,9] ] - это массив размерности 2 |
NovichokJS,
что-то не так? |
Цитата:
|
NovichokJS,
добавьте проверку числа в любой из предложенных выше вариантов, самостоятельно. а лучше исправьте ошибки в строках 1, 5, 6, и будет вам счастье. 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; } |
Рони, поправил:
const createArrOfFunc = number => { let arr = []; if (typeof number !== 'number') { return null; } if (number != undefined) { for (let i = 0; i < number; i += 1) { function func(i) { return i; } arr.push(func); } } else { return []; } return arr; } но не знаю как в шестой строке поправить. Подскажите пожалуйста |
Цитата:
|
NovichokJS,
да и надо было только, исправить ошибки, а не добавлять код))) |
Цитата:
|
но единственное теперь осталось - это путой массив всё равно что-то не возвращает.
|
как тут корректно описать логику что если аргумент не передан то вернуть пустой массив
|
NovichokJS,
const createArrOfFunc = (number = 0) => { if (typeof number !== 'number') { return null; } let arr = []; for (let i = 0; i < number; i += 1) { function func() { return i; }; arr.push(func); } return arr; } console.log(createArrOfFunc(9)[5]()); console.log(createArrOfFunc()); console.log(createArrOfFunc('test')); |
понял, спасибо!
|
Часовой пояс GMT +3, время: 13:04. |