Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 如果条件块记录了一条消息,但在else块中仍设置了一个变量_Javascript_Jquery - Fatal编程技术网

Javascript 如果条件块记录了一条消息,但在else块中仍设置了一个变量

Javascript 如果条件块记录了一条消息,但在else块中仍设置了一个变量,javascript,jquery,Javascript,Jquery,我有一个javascript函数,reOrderJSON,它对数组进行排序,如果参数,order等于“reverse”,它会在数组排序后立即反转数组 我还有一个绑定到关联链接的单击事件的函数 function reOrderJSON(subj,att,order,limit){ subj.sort(function (a, b,order) { a = a[att], b = b[att]; return a.localeCompa

我有一个javascript函数,reOrderJSON,它对数组进行排序,如果参数,
order
等于“reverse”,它会在数组排序后立即反转数组

我还有一个绑定到关联链接的单击事件的函数

function reOrderJSON(subj,att,order,limit){

    subj.sort(function (a, b,order) {


        a = a[att],
        b = b[att];

        return a.localeCompare(b);


    });

    if(order === "reverse"){
        subj.reverse();
        console.log("Reverse passed a parameter to reOrderJSON")
    }



    layoutDate(subj,limit)
    return depos = subj;
}

function clickReorder(e){
        var orderingLink = e.target;
        var reverseOrder = "";

        var order = $(orderingLink).attr('data-order');
        if(order === "desc" || order === "undefined"){
            $(orderingLink).attr('data-order','asc');
            console.log("Order detected as "+order)
            reverseOrder = false;

        }else{
            $(orderingLink).attr('data-order','desc');
            console.log("Order detected as "+order)

            reverseOrder = "reverse";
        }

        var limit = $('.entries-per-page').val();

        reOrderJSON(e.data.orderedObject,$(e.target).data('assoc'),reverseOrder,limit);

        $('.result th').css('background','transparent');
        $(orderingLink).closest('th').css({'background':'pink'});


        return false;
}

$('.result').on("click", "th a", { orderedObject: depos }, clickReorder);
该链接在开始时如下所示:

<th><a href="#" data-assoc="county">County</a></th>

正如你所知道的,我正在记录一些调试文本来告诉你发生了什么。第一次单击链接时,我总是在日志中返回以下两行:
检测到未定义的订单
Reverse向reOrderJSON传递了一个参数

我不明白这是怎么发生的,
订单
不应该第一次作为
“反向”
传递。我错过了什么

depos
是一个数组对象,如果有区别的话。

您的比较

order === "undefined"
当前正在检查字符串“
未定义”
”,但实际上您希望检查变量中的未定义值

你真的想要:

order == undefined   // no quotes -- it's not a string
或者,更好的是:

typeof order == "undefined"
因为未定义的可以在非严格模式下被覆盖。

您的比较

order === "undefined"
当前正在检查字符串“
未定义”
”,但实际上您希望检查变量中的未定义值

你真的想要:

order == undefined   // no quotes -- it's not a string
或者,更好的是:

typeof order == "undefined"

因为
未定义的
可以在非严格模式下被覆盖。

Boom!头像。我知道我在做傻事。星期五晚上,一切都结束了。谢谢,伙计,砰!头像。我知道我在做傻事。星期五晚上,一切都结束了。谢谢,朋友。作为提示,请将您的日志标记为:
console.log(“if:Order检测为”+Order)
console.log(“else:Order检测为”+Order)
。有时可以节省大量工作:)。作为提示,请按如下方式标记日志:
console.log(“if:Order检测为”+Order)
console.log(“else:Order检测为”+Order)
。有时可以节省大量工作:)。