首页 > 解决方案 > 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]

标签: javascript

解决方案


您应该使用 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);


推荐阅读