javascript“翻译”这些快捷方式

时间:2014-05-05 06:57:35

标签: javascript shortcuts

修改 代码来自: 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 "";
}

3 个答案:

答案 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("");
}

希望它有所帮助。