Javascript 数组筛选器方法未返回修剪过的值

Javascript 数组筛选器方法未返回修剪过的值,javascript,Javascript,//输出: [“推”、“弹出”、“移位”](请注意未修剪的“弹出”值) //预期输出: [“推”、“弹出”、“移位”](注意“弹出”的修剪值) 我做错了什么?filter所做的是它返回一个新数组,其中包含旧数组中的元素,这些元素通过回调测试而没有修改。您需要一个.map,后跟一个.filter,因为您都需要更改某些值并完全删除某些值: let un_trimmed=[“推”、“放”、“移”、“移”]; 常数过滤=未修剪 .map(str=>str.trim()) .filter(str=>st

//输出:
[“推”、“弹出”、“移位”]
(请注意未修剪的“弹出”值)
//预期输出:
[“推”、“弹出”、“移位”]
(注意“弹出”的修剪值)


我做错了什么?

filter所做的是它返回一个新数组,其中包含旧数组中的元素,这些元素通过回调测试而没有修改。您需要一个
.map
,后跟一个
.filter
,因为您都需要更改某些值并完全删除某些值:

let un_trimmed=[“推”、“放”、“移”、“移”];
常数过滤=未修剪
.map(str=>str.trim())
.filter(str=>str);

console.log(过滤)
.filter
所做的是,它返回一个新数组,其中包含旧数组中的元素,这些元素通过回调测试而不进行修改。您需要一个
.map
,后跟一个
.filter
,因为您都需要更改某些值并完全删除某些值:

let un_trimmed=[“推”、“放”、“移”、“移”];
常数过滤=未修剪
.map(str=>str.trim())
.filter(str=>str);
console.log(过滤)仅使用返回值来决定是否在输出中包含输入值;它不会修改输入值。为此,请使用then
过滤器

let un_trimmed=[“推”、“放”、“移”、“移”];
过滤=未修剪的映射(函数(el){
返回el.trim();
}).过滤器(布尔值);
console.log(过滤)仅使用返回值来决定是否在输出中包含输入值;它不会修改输入值。为此,请使用then
过滤器

let un_trimmed=[“推”、“放”、“移”、“移”];
过滤=未修剪的映射(函数(el){
返回el.trim();
}).过滤器(布尔值);

console.log(过滤)
.filter(Boolean)
.filter(str=>str)
之间有什么区别吗?不,它们是相同的。在
.filter(Boolean)
.filter(str=>str)
之间有什么区别吗?不,它们是相同的。
let un_trimmed = ["push", " pop", "shift", "  "];
filtered = un_trimmed.filter(function (el) {
  return el.trim();
});