在开关上更改 if/else
Change if/else on switch
美好的一天!想在 switch 上更改我的 if\else 语句。
我有这个工作代码。
$tbody.append([
'<td class="view">' + (row.age === '1' ? '18' : row.age === '2' ? '18-24' : row.age === '3' ? '25-35' : row.age === '4' ? '35+' : 'any' ) + '</td>',
]);
我试着用这个结构来代替它:
var text= 0;
switch (row.age) {
case 0:
text= "any";
break;
case 1:
text = "18";
break;
case 2:
text = "18-24";
break;
case 3:
text = "25-34";
break;
case 3:
text = "35+";
break;
}
$tbody.append([
'<td class="view">' + text + '</td>',
]);
但是没用。结果总是给出 0。有什么想法吗?
如果 row.age
是一个字符串,那么您需要将 case
值作为 string
或者 integer
如果 row.age 是整数。
switch (row.age) {
case '0':
text= "any";
break;
case '1':
text = "18";
break;
case '2':
text = "18-24";
break;
case '3':
text = "25-34";
break;
case '3':
text = "35+";
break;
}
根据您的问题,if-else
表示 row.age
是字符串,因此在 switch-case
块中您必须将其作为整数进行比较。因为,切换匹配就像
===
严格匹配。
row.age === '1'
和case 1
是不同的。第一个是字符串,第二个是 int
尝试删除 [
和 .append()
处的 ]
,其中 returns 错误
NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null.
var row = {};
row.age = 1;
var text = "";
switch (row.age) {
case 0:
text = "any";
break;
case 1:
text = "18";
break;
case 2:
text = "18-24";
break;
case 3:
text = "25-34";
break;
case 3:
text = "35+";
break;
}
$("body").append("<span>" + text + "</span>")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
美好的一天!想在 switch 上更改我的 if\else 语句。
我有这个工作代码。
$tbody.append([
'<td class="view">' + (row.age === '1' ? '18' : row.age === '2' ? '18-24' : row.age === '3' ? '25-35' : row.age === '4' ? '35+' : 'any' ) + '</td>',
]);
我试着用这个结构来代替它:
var text= 0;
switch (row.age) {
case 0:
text= "any";
break;
case 1:
text = "18";
break;
case 2:
text = "18-24";
break;
case 3:
text = "25-34";
break;
case 3:
text = "35+";
break;
}
$tbody.append([
'<td class="view">' + text + '</td>',
]);
但是没用。结果总是给出 0。有什么想法吗?
如果 row.age
是一个字符串,那么您需要将 case
值作为 string
或者 integer
如果 row.age 是整数。
switch (row.age) {
case '0':
text= "any";
break;
case '1':
text = "18";
break;
case '2':
text = "18-24";
break;
case '3':
text = "25-34";
break;
case '3':
text = "35+";
break;
}
根据您的问题,if-else
表示 row.age
是字符串,因此在 switch-case
块中您必须将其作为整数进行比较。因为,切换匹配就像
===
严格匹配。
row.age === '1'
和case 1
是不同的。第一个是字符串,第二个是 int
尝试删除 [
和 .append()
处的 ]
,其中 returns 错误
NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null.
var row = {};
row.age = 1;
var text = "";
switch (row.age) {
case 0:
text = "any";
break;
case 1:
text = "18";
break;
case 2:
text = "18-24";
break;
case 3:
text = "25-34";
break;
case 3:
text = "35+";
break;
}
$("body").append("<span>" + text + "</span>")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>