Напишите функцию, которая должна возвращать новую строку, содержащую только слова, в которых нет буквы «е» в javascript

что я делаю неправильно в коде, который я упомянул ниже?

Мои выводы: ['Что', 'время', 'есть', 'это', 'все?' ] и ['здание']. Эти выходные данные должны быть строковыми, потому что я использовал метод соединения. Также первый вывод совершенно неверен.

let removeEWords = function(sentence) {
  debugger
  let arrayedSentence = sentence.split(" ");
  let newArr = [];
  return arrayedSentence.filter(function(el) {
    if (!el.includes("e")) {
      newArr.push(el);
    }
    return newArr.join(" ");
  })

};
console.info(removeEWords('What time is it everyone?')); // 'What is it'
console.info(removeEWords('Enter the building')); // 'building'

Во-первых, вы используете filter, как будто это map...

Maximilian Burszley 01.10.2022 15:26

@mplungjan на самом деле нет. Вы не возвращаете значения из forEach.

Maximilian Burszley 01.10.2022 15:36

Ок, это не карта, если он сделал то, что задумал и вернул новый Арр

mplungjan 01.10.2022 15:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
62
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам нужно «фильтровать», а не добавлять в массив — вы используете filter как forEach

const removeEWords = sentence => sentence
  .split(" ")
  .filter(word => !word.includes("e")) // this returns true to return or false to drop
  .join(" ");
console.info(removeEWords('What time is it everyone?')); // 'What is it'
console.info(removeEWords('Enter the building')); // 'building'

@UBO Спасибо, что приняли мой ответ. Это было первое, и это правильно, но кто-то все равно решил проголосовать за него.

mplungjan 01.10.2022 16:24

То, как .filter() работает с массивом, заключается в том, что вам нужно вернуть либо true, либо false. True = Сохранить, False = оставить;

Зная это, вы можете действительно реорганизовать это, просто сделав это:

let removeEWords =  (sentence) => sentence.split(" ").filter((el) => !el.includes("e")).join(" ");

фильтр возвращает новый массив элементов, которые проходят тест (т.е. true/false), указанный в обратном вызове — нет необходимости во временном массиве, в который помещаются элементы. Итак, все, что вам нужно сделать, это return !word.includes('e'); вернуть слово, которое не включает e.

Примечание. Я назвал переменную word, так как это облегчает чтение обратного вызова.

function removeEWords(sentence) {
  return sentence.split(' ').filter(word => {
    return !word.includes('e');
  })
};

console.info(removeEWords('What time is it everyone?'));
console.info(removeEWords('Enter the building'));

Другие вопросы по теме