Javascript 对多维数组使用unshift函数
我一直在尝试对MD数组使用unshift函数,但我无法使它相应地工作 我正在使用shift OK,它可以像预期的那样执行所需的操作,但取消shift不会 下面是我正在使用的阵列: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
[ [ '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);