Javascript 对多维数组使用unshift函数

Javascript 对多维数组使用unshift函数,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我一直在尝试对MD数组使用unshift函数,但我无法使它相应地工作 我正在使用shift OK,它可以像预期的那样执行所需的操作,但取消shift不会 下面是我正在使用的阵列: [ [ '487', 'RINGING' ], [ '477', 'RINGING' ] ] 当我尝试对其执行取消移动时,它会显示以下内容: [ [ '487', 'RINGING' ], [ '477', 'RINGING' ], 2 ] 我只需要将477阵列移到开头,如下所示: [ [ '477', 'RING

我一直在尝试对MD数组使用unshift函数,但我无法使它相应地工作

我正在使用shift OK,它可以像预期的那样执行所需的操作,但取消shift不会

下面是我正在使用的阵列:

[ [ '487', 'RINGING' ], [ '477', 'RINGING' ] ]
当我尝试对其执行取消移动时,它会显示以下内容:

[ [ '487', 'RINGING' ], [ '477', 'RINGING' ], 2 ]
我只需要将477阵列移到开头,如下所示:

[ [ '477', 'RINGING' ], [ '487', 'RINGING' ]]
我正在使用的代码:

var channelArrStatus = [ [ '477', 'RINGING' ], [ '487', 'RINGING' ]];

function monitor_channel(event, channel) {
if (event.device_state['state'] === "RINGING") {
      var name = "User_487";
      var status = "NOT_INUSE"
      var index = 0;
      if (channelArrStatus.length === 0) {
        var chanar = new Array(name, status);
        channelArrStatus.push(chanar);
      } else {
        var found = false;
        for (var i in channelArrStatus) {
          var channelArrStatusElem = channelArrStatus[i];
          if (channelArrStatusElem[0] === name) {
            index = i;
            found = true;
            if (channelArrStatus[index][1] !== "DND") {
              channelArrStatus.push(channelArrStatus.unshift());
              setTimeout(function () {
                channelArrStatus[index][1] = status;
              }, 10000);
            }
          }   
        }
      }
    }
我无法将数组移动到数组的开头,因为上面使用了unshift高亮显示

有什么建议吗

编辑:

调用不加任何前缀,并返回数组的长度-
2
,在您的情况下-这就是您要推送的值

你要么想要

channelArrStatus.push(channelArrStatus.shift()); // no un-


也就是说,您应该在这一行

 channelArrStatus.push(channelArrStatus.unshift());
您正在将数组的长度添加到数组的末尾。 如果要将元素添加到数组的开头,只需调用
unshift

channelArrStatus.unshift(element);

unshift
将元素添加到数组的开头,你想实现什么?@giannisf这就是我想做的,但我无法让它工作。我对它没有兴趣,我也尝试了下面的答案。如果有帮助的话,我已经用JS小提琴更新了。我不想再次将它移到数组的末尾,我需要将它移到开头,我在问题中添加了一个JS提琴,用
channelArrStatus.unshift(channelArrStatus.pop())来演示这一点但无效
channelArrStatus.unshift(element);