javascript - Arr.map 返回 null 而不是完全删除对象?
问题描述
我正在尝试删除每个没有名字和姓氏的用户。
这是对象:
users = [{firstName: "john", lastName: "smith"}, {firstName: "", lastName: ""}]
这是我的代码:
let users = this.users.map(user => {
if (user.firstName !== '' && user.lastName !== '') {
return user
}
})
它确实删除了空的,但它用 null 替换它,我想完全删除它并且不显示 null 而不是对象。
当我将它记录到映射数组时得到什么:[{firstName: "john", lastName: "smith"}, null]
解决方案
您应该使用 a filter
,而不是 a map
,amap
只是对元素应用一些转换filter
,但是,它适用于根据某些条件删除/保留元素:
var users = [{firstName: "john", lastName: "smith"}, {firstName: "", lastName: ""}]
users = users.filter(user => (user.firstName !== '' && user.lastName !== ''));
console.log(users);
推荐阅读
- php - Yii2:如何动态更改数据库连接字符串?
- python - 如何在 Python 中为矩阵分解创建自定义优化函数?
- python - 读取 txt 文件并插入文本小部件后显示的括号。任何简单的修复方法?
- python - 避免来自 Python 标准输入流的控制序列(如 ^[[C)
- php - 缓慢的简单雄辩的查询
- django - 我们是否需要在 django 的 ManyToManyField 中使用 on_delete 参数?
- asp.net-mvc - 添加引用时无法解决依赖项面临错误
- php - 如何销毁离开页面的具体 $_SESSION 变量?
- reactjs - 在 Apache 服务器 CENTOS 环境上部署 React App 不起作用
- asp.net-core - ASP.Net Core web api 404 未找到