Я пытался разработать способ перемещения массива в начало массива.Найти массив и перенести его в начало многомерного массива
Вопрос меня в том, что я использую, как предложено в предыдущем вопросе:
channelArrStatus.unshift(channelArrStatus.pop());
Выпуск быть это только когда-либо удалить последнее значение и придерживаться его в начале.
Но если значения меняются каждый раз, когда мне это нужно, чтобы найти это, если условие было выполнено, переместите массив, который соответствовал условиям, в начало массива.
Что должно произойти
Перед Find - [ '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();
Я знаю, почему он не работает, но я пробовал в основном все, чтобы переместить массив, который он находит в начале.
Любые идеи?