优化这段代码let mesStr = ""; let itemFlag = false; if (var_g_name !== tmpVarGName) { mesStr = mesStr+"<br>・"+getMsg($('#INF026').text(),''); } if (share106 !== tmpShare106) { mesStr = mesStr+"<br>・"+getMsg($('#INF027').text(),''); } if ( areadata !== tmpAreadata ) { if ((mesStr.match(/・/g)||[]).length>1){ mesStr = mesStr+"<br><span style='display:inline-block; width: 42px;'/>・"+getMsg($('#INF028').text(),''); }else { mesStr = mesStr+"<br>・"+getMsg($('#INF028').text(),''); } } if ( itemdata.length !== tmpItemdata.length ) { itemFlag = true; }else { for (let i=0;i<itemdata.length;i++){ if (itemdata[i].id!==tmpItemdata[i].id){ itemFlag = true; } } } if (itemFlag){ if ((mesStr.match(/・/g)||[]).length>1){ mesStr = mesStr+"<br><span style='display:inline-block; width: 42px;'/>・"+getMsg($('#INF029').text(),''); }else { mesStr = mesStr+"<br>・"+getMsg($('#INF029').text(),''); } } if (mesStr===""){ $('#dd_yh_0106').dialog('close'); }
时间: 2024-02-23 11:59:33 浏览: 161
以下是优化后的代码:
```javascript
let mesStr = "";
const messages = [
{ flag: var_g_name !== tmpVarGName, msg: $('#INF026').text() },
{ flag: share106 !== tmpShare106, msg: $('#INF027').text() },
{ flag: areadata !== tmpAreadata, msg: $('#INF028').text() },
{
flag: itemdata.length !== tmpItemdata.length || itemdata.some((item, i) => item.id !== tmpItemdata[i].id),
msg: $('#INF029').text()
}
];
messages.forEach(({ flag, msg }) => {
if (flag) {
mesStr += mesStr ? "<br>" : "";
mesStr += "・" + getMsg(msg, "");
}
});
if (mesStr === "") {
$('#dd_yh_0106').dialog('close');
}
```
在这个例子中,我们使用了一个 `messages` 数组来存储所有的消息,每个消息都包括一个 `flag` 标志和一个 `msg` 文本。我们使用 `forEach()` 方法遍历 `messages` 数组,并检查每个消息的 `flag` 是否为 `true`,如果是,则将相应的 `msg` 添加到 `mesStr` 变量中。最后,我们检查 `mesStr` 是否为空,如果是,则关闭对话框。
此外,我们还使用了 `some()` 方法来检查 `itemdata` 和 `tmpItemdata` 数组中的每个元素是否相同。如果有任何一个元素不同,就将 `itemFlag` 设置为 `true`。这样可以减少代码重复,并让代码更简洁易读。
阅读全文