Javascript 函数内部的JS开关语句
我有个问题。我看到了一个可能的解决方案,但它对我不起作用。我需要在函数中放入一个Javascript 函数内部的JS开关语句,javascript,jquery,Javascript,Jquery,我有个问题。我看到了一个可能的解决方案,但它对我不起作用。我需要在函数中放入一个switch语句,因为我有很多情况需要更改 开关功能: var filter = function(value) { switch(typeof value) { case 'number is required': value = 'Number field is required!'; break; } } 我在AJAX中调用这个函数 $.map(resp
switch
语句,因为我有很多情况需要更改
开关功能:
var filter = function(value) {
switch(typeof value) {
case 'number is required':
value = 'Number field is required!';
break;
}
}
我在AJAX中调用这个函数
$.map(response.errors, function(e){
filter(e) // I tried this and
filter = e;
// my code to put here in DIV.
})
错误消息返回我要更改的案例。e、 g:
需要编号
我不完全确定你在做什么,但我怀疑是这样的:
function filter(value) {
switch (value) {
case 'number is required':
value = 'Number field is required';
break;
case 'something else':
value = 'Some other message';
break;
// More cases here
}
return value;
}
$.each(response.errors, function(i, e) {
msg = filter(e);
$("#errors").append("<div class='error-msg'>" + msg + "</div>");
});
据我所知,
typeof value
永远不会返回“number is required”为什么要使用“typeof value”。typeof始终是以下内容之一(“未定义”、“对象”、“布尔”、“字符串”、“数字”、“符号”、“函数”)。“number is required”的大小写永远不会与switch语句匹配。您还缺少大小写值后面的:
。是的,将返回该值。响应错误返回一个对象(对象{53077:“number is required.”),我想将返回值更改为更“可压缩”。@Barmar我真的不知道。我正在学习JS=/谢谢兄弟!!!你太棒了,成功了!谢谢你的第二种方法,真的很好看!哦,你真的应该避免在这里使用“过滤器”。术语“映射”、“过滤”和“减少”都有。您在这里所做的通常称为“查找”。
var translations = {
'number is required': 'Number field is required',
'something else': 'Some other message',
// more cases here
};
function filter(value) {
return translations[value] || value;
}