修改 代码来自: http://jsfiddle.net/sWbfk/
我有这个javascript代码,我不明白..
它是这样的:
return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
我尝试用可读的东西“翻译”它,但我失败了..任何帮助都是a折的!
尝试:
if ( date1 && ( (date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2) ) ) {
return "dp-highlight";
} else {
return "";
}
答案 0 :(得分:3)
以下是如何重写:
return [
true,
date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""
];
甚至:
var array = [true];
if (date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2))) {
array.push("dp-highlight");
} else {
array.push("");
}
return array;
答案 1 :(得分:1)
它返回一个包含两个值的数组
我认为你的意思是:
if (date1 && (date.getTime() == date1.getTime() || (date2 && date >= date1 && date <= date2))) {
return [true, "dp-highlight"];
} else {
return [true, ""];
}
答案 2 :(得分:0)
我认为这样写的代码有助于理解实际比较的内容。
var arr = [true];
var isEqualTime = date.getTime() == date1.getTime();
var x = date2 && date; // if both dates are defined take date
var y = date1 && date; // if both dates are defined take date
var boolValue = isEqualTime || (x >= y <= date2);
var z = date1 && boolValue; // set z true, false or undefined.
if(z){
arr.push("dp-highlight");
}else{
arr.push("");
}
希望它有所帮助。