Javascript 如果条件块记录了一条消息,但在else块中仍设置了一个变量
我有一个javascript函数,reOrderJSON,它对数组进行排序,如果参数,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
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)
。有时可以节省大量工作:)。