push.apply () не увеличивает размер массива

0

У меня есть эта часть кода

if ($scope.newLeverAdded) {
    console.log("executed this");
    console.log($scope.tradeDataObj, "data is here");
    console.log($scope.group_levers, "this 2 here");
    $scope.group_levers.levers.push.apply($scope.group_levers.levers, $scope.tradeDataObj.levers[0]);

    console.log($scope.group_levers, "mid prrinting");
    console.log("after this");
}
console.log($scope.group_levers, "final prrinting");

Все, что я пытаюсь увеличить размер массива, добавив к нему новый элемент. Итак, теперь массив содержит 2 элемента. Но конечная консоль по-прежнему возвращает один элемент в массиве.

Почему это так?

  • 0
    Каков ваш полный консольный вывод?
  • 0
    2-й аргумент для apply должен быть массивом. Является ли $scope.tradeDataObj.levers[0] массивом?
Показать ещё 2 комментария
Теги:
arrays

2 ответа

1
Лучший ответ

Думаю, вам нужно:

$scope.group_levers.levers.push.apply($scope.group_levers.levers, $scope.tradeDataObj.levers);

Второй аргумент apply() должен быть массивом.

Я предполагаю, что вы пытаетесь нажать несколько элементов, подобных этому, и это

  • 0
    Mohayemin .. спасибо за указание в правильном направлении. Я догадался, что если исходным источником является массив, в него должен быть добавлен только объект, а не массив. Отсюда делали рычаги [0]. Это особый случай для применения
1

Не имея возможности запускать свой код, вот несколько вещей, которые вы можете попробовать:

  1. может быть, что ваш код не вводит условие, которое вы указали.
  2. почему бы просто не проверить с помощью $scope.group_levers.levers.push('new element') вместо применения
  • 0
    Странно ... когда я пробовал .push ($ scope.tradeDataObj.levers [0]). Среда IDE выдает синтаксическую ошибку, например, ожидаемый идентификатор
  • 0
    Я предполагаю, что $scope.group_levers.levers это массив.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню