在JavaScript中重构if和else语句?

在JavaScript中重构if和else语句?,javascript,if-statement,Javascript,If Statement,我想重构一个if-else语句。我在网上看到了一些例子,但我还没有找到一个可以帮助我的。我还在学习 condition 1 if(p.timestamp === p.lastTimeStamp) then let postData = { room: p.room, patient: p.id, timestamp: p.timestamp, } 我当前的函数如下所示。如果您能告诉我如何重构以下内容,我将不胜感激 postRecord(患者){ this.state.patie

我想重构一个if-else语句。我在网上看到了一些例子,但我还没有找到一个可以帮助我的。我还在学习

condition 1

if(p.timestamp === p.lastTimeStamp)
then let postData = {
  room: p.room,
  patient: p.id,
  timestamp: p.timestamp,
}

我当前的函数如下所示。如果您能告诉我如何重构以下内容,我将不胜感激

postRecord(患者){
this.state.patients.map(p=>{
设postData={};
if((p.id==patient.id)&&(p.timestamp!==p.lastTimeStamp)){
postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp,
替换:p.lastTimeStamp
};
}
if((p.id==patient.id)&&(p.timestamp==p.lastTimeStamp)){
postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp,
};
}
axios({
方法:“post”,
url:“/record”,
数据:postData
})
。然后(res=>{
这是我的国家({
记录成功:(res.status==200)
});
})
.catch(错误=>{
抛出新错误(err);
});
});
}
你可以拿一个,然后得到想要的零件

let postData = {};
if (p.id === patient.id) {
    postData = p.timestamp === p.lastTimeStamp
        ? { room: p.room, patient: p.id, timestamp: p.timestamp }
        : { room: p.room, patient: p.id, timestamp: p.timestamp, replace: p.lastTimeStamp };
}

您可以通过使用复选框指定额外的属性来简化条件,因为您的对象将不会在该属性之外更改:

let postData={};
如果(p.id==患者id){
postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp
};
if(p.timestamp!==p.lastTimeStamp)
postData['replace']=p.lastTimeStamp;
}

这里没有if/else语句-有两条if语句始终运行。如果您只是在执行If-else语句:

if ((p.id === patient.id) && (p.timestamp !== p.lastTimeStamp)) {

            postData = { 
                room: p.room,
                patient: p.id,
                timestamp: p.timestamp,
                replace: p.lastTimeStamp
            };
        } else {

            postData = { 
                room: p.room,
                patient: p.id,
                timestamp: p.timestamp,

            };
        }

只需有条件地添加到对象:

let postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp
};
if(p.timestamp!==p.lastTimeStamp){
postData[“替换”]=p.lastTimeStamp;
}

不带三元运算符:

let postData={};
如果(p.id==患者id){
if(p.timestamp!==p.lastTimeStamp){
postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp,
替换:p.lastTimeStamp
};
}否则{
postData={
房间:p.room,
病人:p.id,
时间戳:p.timestamp,
};
}
}
if ((p.id === patient.id) && (p.timestamp !== p.lastTimeStamp)) {

            postData = { 
                room: p.room,
                patient: p.id,
                timestamp: p.timestamp,
                replace: p.lastTimeStamp
            };
        } else {

            postData = { 
                room: p.room,
                patient: p.id,
                timestamp: p.timestamp,

            };
        }