仅更新非空字段|对象传播 [英] Update only non-empty fields | Object spread

查看:58
本文介绍了仅更新非空字段|对象传播的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道像这样的东西是否可能有一个衬里

I was wondering if there is a one liner is possible for something like

        let updatedUser;
        if (firstName) {
            updatedUser = { ...userData, firstName };
        }
        if (lastName) {
            updatedUser = { ...userData, lastName };
        }
        if (password) {
            updatedUser = { ...userData, password };
        }

我只是检查空的firstName,lastName等.如果我有几个这样的字段怎么办?

I'm just checking for empty firstName, lastName and so forth. What if I have several fields like this?

因此,如果我写的话,我不想用空值更新我的任何字段

So I don't want to update any of my fields with empty values if I write

updatedUser = { ...userData, firstName, lastName, password  };

如果我的字段为空,是否存在可能告诉对象散布或其他任何内容不更新的替代方法?

Any possible alternative that exists that can tell object spread or anything else to not update if my field is empty?

推荐答案

您可以使用

const updatedUser = Object.assign({},
     userData,
     firstName && {firstName},
     lastName && {lastName},
     password && {password}
);

或类似的对象传播语法:

or similar with object spread syntax:

const updatedUser = {
     ...userData,
     ...firstName && {firstName},
     ...lastName && {lastName},
     ...password && {password}
};

虚假值将被忽略,不会导致任何属性的创建.

Falsy values will be ignored and not lead to the creation of any properties.

这篇关于仅更新非空字段|对象传播的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆