我一直在試圖開發一種將數組移動到數組開頭的方法。查找數組並將其移動到Multidimesional數組的開頭
問題時遇到的是,我用的是作爲前一個問題建議:
channelArrStatus.unshift(channelArrStatus.pop());
問題是它僅會刪除最後一個值,並在一開始堅持下去。
但是,如果每次我需要它的值是不同的,如果條件滿足,然後將符合條件的數組移動到數組的開始。
我需要發生
找不到之前 - [ '477', '振鈴']:
[ [ '487', 'RINGING' ], [ '477', 'RINGING' ],[ '488', 'RINGING' ] ]
後:
[[ '477', 'RINGING' ],[ '487', 'RINGING' ],[ '488', 'RINGING' ] ]
什麼正在發生的事情!
前:
[ [ '487', 'RINGING' ], [ '477', 'RINGING' ],[ '488', 'RINGING' ] ]
後:
[ [ '488', 'RINGING' ],[ '487', 'RINGING' ], [ '477', 'RINGING' ] ]
理想的情況下,當一個條件已經滿足,應該移到該數組我已經做了的jsfiddle &代碼開始下面是一個例子:
var channelArrStatus = [ [ '477', 'RINGING' ], [ '487', 'NOT_INUSE' ], [ '488', 'RINGING' ]];
var state = "NOT_INUSE";
function testArray(){
if (state === "NOT_INUSE") {
var name = "487";
var status = "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") {
setTimeout(function() {
channelArrStatus[index][1] = status;
if(channelArrStatus[index][1] === status){
channelArrStatus.unshift(channelArrStatus.pop());
document.write(channelArrStatus);
}
}, 4000);
}
}
}
}
}
}
testArray();
我知道它爲什麼沒有工作,但我主要嘗試了所有將它發現的數組移到開頭。
任何想法?