Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数内部的JS开关语句_Javascript_Jquery - Fatal编程技术网

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;
}