javascript - 数组过滤器方法不返回修剪值
问题描述
let un_trimmed = ["push", " pop", "shift", " "];
filtered = un_trimmed.filter(function (el) {
return el.trim();
});
//输出:(
["push", " pop", "shift"]
注意“pop”的未修剪值)
//预期输出:(
["push", "pop", "shift"]
注意“pop”的修剪值)
我究竟做错了什么 ?
解决方案
它的作用是.filter
返回一个新数组,其中包含旧数组中的元素,这些元素在没有修改的情况下通过了回调的测试。您需要 a.map
后跟 a .filter
,因为您都需要更改某些值并完全删除某些值:
let un_trimmed = ["push", " pop", "shift", " "];
const filtered = un_trimmed
.map(str => str.trim())
.filter(str => str);
console.log(filtered);
推荐阅读
- android - Xamarin android App - 将设备语言更改为“he-IL”不会设置 UICulture
- r - 如果数字在范围内,则将其标记为“”
- python - 如何将注意力层应用于 LSTM 模型
- amazon-web-services - 在 ebextension 配置中运行时,Sudo 找不到存在于 EC2 实例中的文件
- debian - 在 Artifactory 上传后无法立即下载 debian 文件
- vb.net - 无法从 git 克隆 winform 项目(.gitignore 问题)
- java - Java、Android Keystore - 提供未加密的 API 密钥或秘密用于加密
- javascript - AFrame:将新 Object3D 添加到当前对象时的位置偏移单位
- swift - CAGradientLayer 不完全适合 UITableViewCell 边界
- python - 使用套接字python发送文件