如何使用unshift()将数字添加到数组?

时间:2018-01-09 15:41:50

标签: javascript arrays

如何使用'unshift()'??

将数字颠倒添加到数组中

我想得到一个数组= {2018,2017,2016,2015,...,1999}。 因为'2018'是今年,'1999'是我喜欢的歌手的首演年。 这就是为什么我从'1999'开始,它是数组[0]。

这是我的代码使用'push()'。我认为这太长而且太愚蠢了。我相信有些东西我无法想出来。谢谢。

<script>
          var years = [1999];
          var i = 0;
          var n = new Date().getFullYear() - years[i] + 1;
          while(i < n){
            years.push(years[i]+1);
            i++;
          }
          i=1;
          years.reverse();
          while(i < years.length){
            document.write('<li><a href='+years[i]+'.html>'+years[i]+'</a></li>');
            i++;
          }
        </script>

3 个答案:

答案 0 :(得分:2)

这样的东西?

&#13;
&#13;
var years = [1999];
var i = 0;
var n = new Date().getFullYear() - years[i];
while (i < n) {
  years.unshift(years[0]+1);
  i++;
}
console.log(years);
&#13;
&#13;
&#13;

这会将明年添加到数组的开头,并使用unshift()。这样就不需要像你那样反转数组了。

值得注意的是,我们总是取消years[0]+1的值,因为数组被反转,使得最大数字总是在索引0处。

答案 1 :(得分:2)

为什么你甚至需要一个阵列?

var currentYear = new Date().getFullYear();
for (var year = currentYear; year >= 1999; year--){
  document.write('<li><a href='+year+'.html>'+year+'</a></li>');
}

答案 2 :(得分:0)

如果我修改您的代码以在数组中生成years。对于初始年份应该是这样的,即 debutYear

this.years = function(debutYear) {
            var currentYear = new Date().getFullYear(), years = [];
            while ( debutYear <= currentYear ) {
                    years.push(debutYear++);
            } 
            return years.reverse();
    }

console.log(years(1999));