Troy Bryant Ответов: 0

Удалить первый элемент из массива


Привет -

Есть то, что кажется простым вопросом. У меня есть выпадающий список ui-select. О том, что это метод, событие onChange. То, что я хочу, чтобы это произошло, когда элемент выбран и изменен, у меня есть 3 массива. Один из них я просматриваю этот массив, чтобы убедиться, что у меня есть типы, а из тех, чье свойство типа проверено верно, я просматриваю другой массив для сравнения. Если у меня есть совпадение, я помещаю этот объект в 3-й массив. После завершения циклов я пытаюсь удалить первый объект в массиве.

Предложения -

Спасибо
Вот мой код
vm.backtypes =[];
vm.types = [];
vm.changeEvent = function(ctrl){
    if(vm.backtypes.length > 0){
        angular.forEach(vm.backtypes, function (x) {
            if(x.checked){;
                angular.forEach(ctrl.backOptionSelected, function(s){
                    if(x.id == s)
                    {
                        vm.types.push(x);
                        //vm.types.shift();

                    }
                });//end 2nd foreach
            }//end if
        });//end first foreach
    }//end if
    vm.types.shift();
    console.log(vm.types);
}//end changeEvent



Что я уже пробовал:

Я пробовал .shift() и пробовал. splice ().

Karthik_Mahalingam

получаете ли Вы значения в console. log (vm.types); ?

Troy Bryant

да, в конце массив пуст, если я. shift () там. Если я сделаю это сразу после того, как я вставил x в массив, я все равно получу оба значения.

Karthik_Mahalingam

shift() удалит самый верхний элемент в массиве.

Troy Bryant

Это то, что я хочу, но не веду себя таким образом, поэтому мысль была чем-то, что я не делал или имел ее в неправильном месте

Karthik_Mahalingam

в чем же здесь ценность
консоли.журнала(в формате JSON.преобразовать в строки(ВМ.типы));

Troy Bryant

в этот момент у меня все еще есть оба объекта в массиве

Karthik_Mahalingam

консоли.журнал(ВМ.типы);
ВМ.типов.сдвиг();
консоли.журнал(ВМ.типы);

проверить это

Troy Bryant

тот же результат оба объекта все еще находятся в массиве

Karthik_Mahalingam

попробуйте поместить его в обычный массив, а затем позже назначить массив vm. types

Troy Bryant

Я думал, что просто создал базовый пустой массив

Karthik_Mahalingam

хорошо, это было успешно

Troy Bryant

извините за задержку, Да, создание пустого массива, а затем перемещение его в новый пустой массив сработало. Спасибо

Karthik_Mahalingam

Круто

0 Ответов