我在JavaScript中有以下代碼?我可以簡化多個if - else語句嗎?
if ($(form).data('action') == "Edit") {
xx
} else if ($(form).data('action') == "Create"){
xy
} else if ($(form).data('action') == "Delete"){
xz
}
我可以簡化這個,還有一些默認路徑嗎?
我在JavaScript中有以下代碼?我可以簡化多個if - else語句嗎?
if ($(form).data('action') == "Edit") {
xx
} else if ($(form).data('action') == "Create"){
xy
} else if ($(form).data('action') == "Delete"){
xz
}
我可以簡化這個,還有一些默認路徑嗎?
你也可以創建一個包含您的操作對象:
var Actions = {
'Edit' : function() {},
'Create' : function() {},
'Delete' : function() {}
};
var action = $(form).data('action');
if (Actions.hasOwnProperty(action)) {
Actions[action]();
}
+1我的首選方法:) – kinakuta
您應該緩存$(form).data('action')的結果;例如:
如果要處理多個var action = $(form).data('action');
if (action === 'Edit') {
//
} else if (action === 'Create') {
//
} else if (action === 'Delete') {
//
}
使用開關,如果從這裏別的
switch(n)
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
https://developer.mozilla.org/en/JavaScript/Reference/Statements/switch –
嘗試CASE:從他們 http://www.tutorialspoint.com/javascript/javascript_switch_case.htm
例如:
<script type="text/javascript">
<!--
var grade='A';
document.write("Entering switch block<br />");
switch (grade)
{
case 'A': document.write("Good job<br />");
break;
case 'B': document.write("Pretty good<br />");
break;
case 'C': document.write("Passed<br />");
break;
case 'D': document.write("Not so good<br />");
break;
case 'F': document.write("Failed<br />");
break;
default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>
Downvoted不是一個特別好的源+例子。 –
使用開關案例:
var action = $(form).data('action')
switch(action)
{
case 'Edit': xx;
break;
case 'Create': yy;
break;
case 'Delete': zz;
break;
default: caption ="default";
}
或者你可以使用三元運算符(true? 1:0)
這聽起來像你所描述的是一個開關/箱,但我沒有找到開關的情況下是比多個if/else結構更好。我更喜歡使用對象的哈希值:
var actionObj = {
"Edit": xx,
"Create": xy,
"Delete": xz
};
if (actionObj[act]) {
// do whatever with actionObj[act] you need to
} else {
// do your default action
}
其效果特別好,當值實際上功能,那麼你可以打電話給他們:
var actionObj = {
"Edit": function() {},
"Create": function() {},
"Delete": function() {}
};
if (actionObj[act]) {
actionObj[act]();
} else {
// default action
}
使用switch
塊是最傳統的方式。
您也可以查找函數從一個對象(HashMap的)執行:
var actions = {
Edit: function() {
// xx
},
Create: function() {
// xy
},
Delete: function() {
// xz
}
};
var action = actions[$(form).data("action")];
if (action) {
action();
} else {
// unknown/default action
}
var Actions = {
'Edit' : function() {},
'Create' : function() {},
'Delete' : function() {},
'default': function() {}
},
action = $(form).data('action');
Actions[action]() || Actions[default]();
你是什麼意思默認路徑做? – Oleksi
開關語句。或者創建名爲「edit」的函數並執行$(form).data('action')(){}?雖然我不確定第二個是否可能沒有php –