Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.10.2018, 20:07
Интересующийся
Отправить личное сообщение для melnikov24 Посмотреть профиль Найти все сообщения от melnikov24
 
Регистрация: 24.08.2018
Сообщений: 12

функция которая имеет любое кол-во аргументов и возращает определённого типа
Мне надо написать функцию filterByType, которая принимает любое кол-во аргументов:

• первый аргумент — это тип данных (number, string или boolean), по которому нужно отфильтровать следующие аргументы (2 и далее)

• аргументы, начиная с 2 и далее — любые значения

• функция должна возвращать массив с теми аргументами, которые соответствуют типу данных, переданному в первом аргументе

Пример вызова:

filterByType ('string', 10, 20, ‘a’, ‘b’, true, false);

// возвращает массив [‘a’, ‘b']
Ответить с цитированием
  #2 (permalink)  
Старый 06.10.2018, 20:39
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Псевдомассив аргументов "arguments"

Ну или в явном виде принимать массив: filterByType ('string', [10, 20, ‘a’, ‘b’, true, false]);
Ответить с цитированием
  #3 (permalink)  
Старый 06.10.2018, 21:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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));
Ответить с цитированием
  #4 (permalink)  
Старый 06.10.2018, 21:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

рони, Зачем такие извращения?)
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
Ответить с цитированием
  #5 (permalink)  
Старый 06.10.2018, 21:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Aetae,
ок, спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 06.10.2018, 22:07
Интересующийся
Отправить личное сообщение для melnikov24 Посмотреть профиль Найти все сообщения от melnikov24
 
Регистрация: 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));
Спасибо всё понятно)
Ответить с цитированием
  #7 (permalink)  
Старый 23.01.2020, 12:16
Новичок на форуме
Отправить личное сообщение для SoundMind Посмотреть профиль Найти все сообщения от SoundMind
 
Регистрация: 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));
Ответить с цитированием
  #8 (permalink)  
Старый 23.01.2020, 12:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

SoundMind,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23