06.10.2018, 20:07
|
Интересующийся
|
|
Регистрация: 24.08.2018
Сообщений: 12
|
|
функция которая имеет любое кол-во аргументов и возращает определённого типа
Мне надо написать функцию filterByType, которая принимает любое кол-во аргументов:
• первый аргумент — это тип данных (number, string или boolean), по которому нужно отфильтровать следующие аргументы (2 и далее)
• аргументы, начиная с 2 и далее — любые значения
• функция должна возвращать массив с теми аргументами, которые соответствуют типу данных, переданному в первом аргументе
Пример вызова:
filterByType ('string', 10, 20, ‘a’, ‘b’, true, false);
// возвращает массив [‘a’, ‘b']
|
|
06.10.2018, 20:39
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Псевдомассив аргументов "arguments"
Ну или в явном виде принимать массив: filterByType ('string', [10, 20, ‘a’, ‘b’, true, false]);
|
|
06.10.2018, 21:02
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
melnikov24,
function filterByType()
{
[type, ...arr] = arguments;
return arr.filter(e => typeof e == type)
}
let obj = filterByType ('string', 10, 20, 'a', 'b', true, false);
alert(JSON.stringify(obj));
|
|
06.10.2018, 21:25
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,588
|
|
рони, Зачем такие извращения?)
function filterByType(type, ...arr){
return arr.filter(e => typeof e === type)
}
let obj = filterByType ('string', 10, 20, 'a', 'b', true, false);
alert(JSON.stringify(obj));
__________________
29375, 35
|
|
06.10.2018, 21:39
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Aetae,
ок, спасибо!
|
|
06.10.2018, 22:07
|
Интересующийся
|
|
Регистрация: 24.08.2018
Сообщений: 12
|
|
Сообщение от Aetae
|
рони, Зачем такие извращения?)
function filterByType(type, ...arr){
return arr.filter(e => typeof e === type)
}
let obj = filterByType ('string', 10, 20, 'a', 'b', true, false);
alert(JSON.stringify(obj));
|
Спасибо всё понятно)
|
|
23.01.2020, 12:16
|
Новичок на форуме
|
|
Регистрация: 23.01.2020
Сообщений: 1
|
|
function filterByType(type, ...args) {
return args.filter(function(arg) {
return typeof(arg) === typeof(type)
})
}
alert(filterByType( 'string', 10, 20, 'a', 'b', true, false));
|
|
23.01.2020, 12:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
SoundMind,
|
|
|
|