Что делает это выражение в JavaScript? - PullRequest
0 голосов
/ 28 ноября 2018

Я видел этот код в интернете: http://jsfiddle.net/q9dEB/392/

$(function()
{
    $('#txtDate').datepicker({ beforeShowDay:
      function(dt)
      {

        return [dt.getDay() != 0  && dt.getDay() != 6 , ""];
      }
   });
});

Мой вопрос об этой части:

return [dt.getDay() != 0  && dt.getDay() != 6 , ""];

Это как лямбда-функция из списка понимания?Я не понимаю, как это работает.

1 Ответ

0 голосов
/ 28 ноября 2018

Нет, он просто возвращает массив.Первый элемент в массиве является результатом вычисления выражения dt.getDay() != 0 && dt.getDay() != 6, которое (поскольку это выражение, использующее оператор &&) будет либо true, либо false.Второй элемент в массиве - это пустая строка ("").

Таким образом, возвращаемый конечный результат будет выглядеть примерно так: [true, ""].

Длинная рука, вы можете написать ее так:

var returnVal = [];
var day = dt.getDay();
var result = false;
if (day != 0 && day != 6) result = true;
returnVal.push(result);
returnVal.push("");
return returnVal;

Я надеюсь, что разбивка поможет вам увидеть, что делает каждый бит кода в этой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...