【问题标题】:javascript rotate array elements [duplicate]javascript旋转数组元素[重复]
【发布时间】:2018-08-27 19:16:44
【问题描述】:

大家好,我有这个任务: 我有一个数组 [4,7,3,6,9] 我必须像这样创建一个数组:

[4,7,3,6,9]
[9,4,7,3,6]
[6,9,4,7,3]
[3,6,9,4,7]
[7,3,6,9,4]

我必须制作一个数组旋转的程序,即使我向数组中添加一个新项目,它也应该相应地改变。我是 JS 的新手,1 周左右,这是我目前的尝试:

var numbers = [4, 7, 3, 6, 9];
console.log(numbers);
numbers[0] = 9; numbers[1] = 4; numbers[2] = 7; numbers[3] = 3; numbers[4] = 6;
console.log(numbers);
numbers[0] = 6; numbers[1] = 9; numbers[2] = 4; numbers[3] = 7; numbers[4] = 3;
console.log(numbers);
numbers[0] = 3; numbers[1] = 6; numbers[2] = 9; numbers[3] = 4; numbers[4] = 7;
console.log(numbers);
numbers[0] = 7; numbers[1] = 3; numbers[2] = 6; numbers[3] = 9; numbers[4] = 4;
console.log(numbers);

在我的脑海中我也有 .push、.splice 等。我不知道为什么,但我真的觉得 javascript 不适合我的大脑,哈哈:D

【问题讨论】:

  • 明显重复,是的,@diiN______
  • 抱歉,没找到那个。

标签: javascript arrays rotation numbers push


【解决方案1】:

您可以弹出该值并将其取消移位。

var array = [4, 7, 3, 6, 9],
    i = array.length;

while (i--) {
    console.log(array.join(' '));
    array.unshift(array.pop());
}
console.log(array.join(' '));

【讨论】:

    【解决方案2】:

    你可以使用 swift 和 push

    function rotate( array , times ){
    while( times-- ){
    var temp = array.shift();
     array.push( temp )
     }
    }
    
    //Test
    var players = ['Bob','John','Mack','Malachi'];
    rotate( players ,2 )
    console.log( players );
    

    【讨论】:

      【解决方案3】:

      您可以简单地将splicepop 结合使用:

      var arr = [4,7,3,6,9];
      for(var i=0; i<arr.length-1; i++){
        arr.splice(0, 0, arr.pop())
        console.log(arr)
      }

      【讨论】:

        【解决方案4】:

        这是我的解决方案:

        var numbers = [4, 7, 3, 6, 9];
        
        for(var i = 0; i < numbers.length; i++) {
            console.log(numbers);
            var lastElement = numbers.pop();
            numbers = [lastElement].concat(numbers);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-04
          • 2010-12-31
          • 1970-01-01
          • 2021-09-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多