Javascript 避免每次迭代时过度写入值
我正在创建一个日期选择器。这将显示一个日期列表。假设当前日期是10月12日,那么它将在可滚动列表中显示当前日期之后的365天。我正在使用for循环,但日期列表不会出现。写得太多了。为此,我认为,我需要创建一个单独的数组。我必须用简单的Javascript,AngularJS,而不是jQuery来完成。请检查我下面的代码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
函数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));
}
}