有条件地创建 json object

Conditionally create json object

我正在使用 APISauce 向我的服务器创建 post 请求。

这很好用,id, title and desc 是我传入函数的变量。 return client.post("/锻炼", { 用户ID:身份证, 标题:标题, 描述:描述, });

描述是可选的,如果值为空,我不能post它。

我可以这样做-

if (desc){
return client.post("/workout", {
        userId: id,
        title: title,
        description: desc,
    });
}else
return client.post("/workout", {
        userId: id,
        title: title,
        
});

但这有很多重复,所以我只想检查是否有更有效的方法?我可以检查 JSON object 中的描述字段吗?

你可以写

client.post("/workout", {
    userId: id,
    title: title,
    description: desc,
});

不需要支票。如果 desc 未定义,当字符串化为 JSON 时,键 description 将被删除。

按照 Dave Newton 在评论中提出的建议,它会像下面这样工作

const body = {
  userId: id,
  title
};
if (desc) {
  body.description = desc;
}
client.post('/workout', body);

你只创建了一次对象,如果 属性 存在,你就在对象上设置它。