Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 避免每次迭代时过度写入值_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 避免每次迭代时过度写入值

Javascript 避免每次迭代时过度写入值,javascript,html,angularjs,Javascript,Html,Angularjs,我正在创建一个日期选择器。这将显示一个日期列表。假设当前日期是10月12日,那么它将在可滚动列表中显示当前日期之后的365天。我正在使用for循环,但日期列表不会出现。写得太多了。为此,我认为,我需要创建一个单独的数组。我必须用简单的Javascript,AngularJS,而不是jQuery来完成。请检查我下面的代码 函数Ctrl($scope) { 对于(i=1;i,您需要用日期填充数组,然后使用ng repeat进行渲染 function Ctrl($scope){ $s

我正在创建一个日期选择器。这将显示一个日期列表。假设当前日期是10月12日,那么它将在可滚动列表中显示当前日期之后的365天。我正在使用for循环,但日期列表不会出现。写得太多了。为此,我认为,我需要创建一个单独的数组。我必须用简单的Javascript,AngularJS,而不是jQuery来完成。请检查我下面的代码

函数Ctrl($scope)
{   

对于(i=1;i,您需要用日期填充数组,然后使用ng repeat进行渲染

function Ctrl($scope){   
  $scope.dates = [];
  var date = new Date();
  for(var i = 1; i < 365; i += 1) {
    $scope.dates.push(date.setDate(date.getDate() + 1););
  }
}



<div ng-app ng-controller="Ctrl">
    <div ng-repeat="date in dates">{{date | date:'MMM-dd'}}</div>
</div>
函数Ctrl($scope){
$scope.dates=[];
变量日期=新日期();
对于(变量i=1;i<365;i+=1){
$scope.dates.push(date.setDate(date.getDate()+1););
}
}
{{date}日期:'MMM-dd'}

我建议用另一个版本来解决这个问题:

编辑: 但是,
$scope.dates.push(date.setDate(date.getDate()+1));
)比我下面的代码(
setTime(…)
)要快(


注意,有些年份有366天是的,但是让我们计算365天。一旦我得到了这个概念,我可以很容易地进行任何验证。你想
Jan-01,Jan-05,…,July-15,…,Dec-31
我想要Jan-01,Jan-02…,Feb-01,Feb-03…Mar-02,Mar-03……Dec-31。是的,当前日期到下一个365所有日期。假设当前日期是10月12,所以我希望所有日期都到下一个365。@cyberoy。是吗?请在这里测试。:-我只得到了Oct12 Oct12 Oct12 Oct12等等。我已经更新了我的答案,日期现在增加了1天。它显示的是10月12日10月15日,就像那样。所有日期都不显示。只要将
+I
替换为
+1
,它就会正常工作
function TodoCtrl($scope) {
    var count = new Date();
    $scope.dates = [];
    for (var i = 1; i <= 365; i++) {

        $scope.dates.push(count);
        var next = new Date();
        next.setTime(count.getTime() + (1000 * 3600 * 24))
        count = next;
    }
}
function TodoCtrl($scope) {

    var day = new Date();
    var end = new Date();
    end.setYear(2016)
    $scope.dates = [];
    while (end > day) {
        $scope.dates.push(day.setDate(day.getDate() + 1));
    }
}