JavaScript移除含'e'单词函数异常:输出类型错误且结果不符
问题分析与修正
你的代码主要有三个关键错误:
错误使用
Array.filter()的回调返回值:filter方法要求回调函数返回布尔值(true/false),以此决定当前元素是否被保留到结果数组中。你现在返回的是newArr.join(" ")生成的字符串,在JavaScript中,非空字符串会被强制转换为true,导致所有原单词都被保留,这就是第一个输出结果完全错误的原因。冗余的
newArr变量:filter方法本身会自动生成包含符合条件元素的新数组,完全不需要额外声明数组并手动push元素,这属于多余操作。未将结果数组转为字符串:你的需求是返回字符串,但当前代码直接返回了
filter生成的数组,所以输出是数组而非预期的字符串。
修正后的代码
let removeEWords = function(sentence) { let arrayedSentence = sentence.split(" "); // 筛选不含'e'的单词,再拼接为空格分隔的字符串返回 return arrayedSentence.filter(el => !el.includes("e")).join(" "); }; console.log(removeEWords('What time is it everyone?')); // 'What is it' console.log(removeEWords('Enter the building')); // 'building'
内容的提问来源于stack exchange,提问作者UBO
相关产品推荐
相关产品推荐

