const names = {
John: 'John',
Mike: 'Mike',
David: 'David',
Chris: 'Chris',
};
const searchNames = (args, search) => {
const arr = Object.values(args);
const result = arr.filter(n => {
return search.includes(n);
});
return result.sort().join('\n');
};
searchNames(names, ['David', 'Chris']);
// returns: Chris
// David
Не самый элегантный, но работает.Было бы легче начать с массива, а не с объекта.Не похоже, что объект необходим, поскольку ключи и значения идентичны.Тем не менее, это довольно простая задача с массивом.Я преобразовал объект в массив, содержащий только значения.Затем создал новый массив, отфильтровывая нужные нам имена, вернул этот массив, отсортированный по алфавиту и в строковом формате.('\n')
в операторе return просто ограничивает элементы массива новой строкой, так как это формат, который вы показали.Но это можно изменить на что угодно, если вам не нужно, чтобы имена были в отдельных строках.
Просто для пояснения, согласно документации , const может использоваться здесь:
Объявление const создает доступную только для чтения ссылку на значение.Это не означает, что значение, которое оно содержит, является неизменным, просто то, что идентификатор переменной не может быть переназначен.