Вложенные методы(forEach)
function longest(s1, s2) {
let res=""
return (s1+s2)
.split("")
.sort()
.forEach((item, index, array)=>{
item!==array[index-1]?res+=item:""
})
}
console.log(longest("aretheyhere", "yestheyarehere"))
Добрый, подскажите, что делаю не так: Задача следующая - Возьмите 2 строки s1 и s2, включающие только буквы от a до z. Возвращает новую отсортированную строку, максимально длинную, содержащую различные буквы - каждая из которых берется только один раз. Я уже решил ее через цикл for, но хотелось бы через методы и на последнем методе forEach он мне выдает undefined, с чем это связано?
Ответы (2 шт):
Автор решения: Grundy
→ Ссылка
.forEach - ничего не возвращает, именно поэтому в результате кода в вопросе получается undefined.
Вместо этого возвращать надо было res в которую и собирается результат
function longest(s1, s2) {
let res = "";
(s1 + s2)
.split("")
.sort()
.forEach((item, index, array) => {
item !== array[index - 1] ? res += item : ""
})
return res;
}
console.log(longest("aretheyhere", "yestheyarehere"))
Автор решения: Алексей Р
→ Ссылка
Почему бы не реализовать задачу про множества через множества?
function longest(s1, s2) {
return Array.from(new Set(s1 + s2)).sort().join('');
}
console.log(longest("aretheyhere", "yestheyarehere"))