【问题标题】:Using a switch statement with getDay() method?使用带有 getDay() 方法的 switch 语句?
【发布时间】:2017-08-21 18:55:04
【问题描述】:

我想使用带有getDay() 方法的switch 语句。

这是我正在使用的 switch 语句。我想根据日期返回不同的数据。

switch (new Date().getDay()) {
case 0:
    day = "Sunday";
    break;
case 1:
    day = "Monday";
    break;
case 2:
    day = "Tuesday";
    break;
case 3:
    day = "Wednesday";
    break;
case 4:
    day = "Thursday";
    break;
case 5:
    day = "Friday";
    break;
case 6:
    day = "Saturday";
}

这是我想要返回星期一的数据示例。

 $scope.suggest1("monday-id", function(sItem) {
      if (sItem !== null) {
        $scope.suggestion = sItem.id;
        $scope.name = sItem.name;
        $scope.price = sItem.price;
        }
     });

我不确定如何链接它们,因此任何帮助都会很棒,因为我仍在学习并且找不到类似的问题或示例。

【问题讨论】:

    标签: javascript angularjs angularjs-scope switch-statement


    【解决方案1】:

    这个问题缺少一些细节,但我会这样做。

    angular.module('myapp', []).controller('myctrl', [
      '$scope', function($scope) {
        var getDay, getDayDetails;
        getDayDetails = function(day) {
          var details;
          details = [
            {
              0: {name: 'sun',price: '0'},
              1: {name: 'mon',price: '1'},
              2: {name: 'tue',price: '2'},
              3: {name: 'wed',price: '3'},
              4: {name: 'thu',price: '4'},
              5: {name: 'fri',price: '5'},
              6: {name: 'sat',price: '6'}
            }
          ];
          return $scope.todayDetails = details[0][day];
        };
        getDay = function(date) {
          console.log("called");
          switch (date) {
            case 0:
              getDayDetails(0);
              break;
            case 1:
              getDayDetails(1);
              break;
            case 2:
              getDayDetails(2);
              break;
            case 3:
              getDayDetails(3);
              break;
            case 4:
              getDayDetails(4);
              break;
            case 5:
              getDayDetails(5);
              break;
            case 6:
              getDayDetails(6);
          } 
        };
        $scope.getDay = function(day) {
            $scope.day = getDay(day);
            return console.log("scope.day is ", $scope.day);
        };
        getDay(new Date().getDay());
      }
    ]);
    
    
    
    <div ng-app="myapp" ng-controller="myctrl">
        <pre>{{todayDetails}}</pre>
    </div>
    

    (html只是一个例子,只是给你一个想法) 这是笔: https://codepen.io/nickimola/pen/zdjGGr?editors=0010

    或者 details 也可以不是一个数组,你在对象中有 ID 来匹配一天,你可以遍历所有的天并取出你需要的那个。

    【讨论】:

    • 你能不能把getDay写得更简单,就像getDayDetails一样?
    • 可以,我通常只是用一些小函数来做一件简单的事情,但那只是我,可以很容易地合并在一起
    • 是的,我认为这就是我正在寻找的东西!我会试试这个,谢谢!
    • 如果有帮助,您可以选择答案吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多