Невозможно прочитать свойство "######" из неопределенного - PullRequest
0 голосов
/ 10 июля 2020

У меня есть два массива JSON, $scope.pl и $scope.activepage, которые содержат значения,

 $scope.pl = [{
   pageid: 1,
   page: "regions",
   menudId: 2
  },
  {
   pageid: 2,
   page: "countries",
   menudId: 2
  },
  {
   pageid: 3,
   page: "location",
   menudId: 2
  },
  {
   pageid: 4,
   page: "street",
   menudId: 2
  },
  {
   pageid: 5,
   page: "door",
   menudId: 2
  }
 ]
 $scope.removepl = [{
   pageid: 1,
   page: "regions",
   menuId: 2
  },
  {
   pageid: 1,
   page: "countries",
   menuId: 2
  }
 ]

Теперь мне нужно удалить значения $scope.removepl, которые находятся в $scope.pl

 for (var i = 0; i <= $scope.removepl.length; i++) {
  $scope.pagelists = _.filter($scope.pl, function(res) {
   return res.pageid !== $scope.removepl[i].pageid;
  });
  $scope.pl = $scope.pagelists;
 }

Теперь все работает правильно, но я получаю сообщение об ошибке в консоли, например

не могу прочитать свойство pageid из undefined

могло ли это быть вызвано $scope.removepl[i].pageid, которое я использую для l oop для итерации?

Есть ли у кого-нибудь решение для этого?

1 Ответ

0 голосов
/ 10 июля 2020

Здесь можно сделать примерно так. Я пробовал с arr1 и arr2 внести соответствующие изменения.

Дубликат из arr2 будет удален из arr1 и будет сохранен в result переменной

const arr1 = [{
   id: 1,
   page: "regions",
   menudId: 2
  },
  {
   id: 2,
   page: "countries",
   menudId: 2
  },
  {
   id: 3,
   page: "location",
   menudId: 2
  },
  {
   id: 4,
   page: "street",
   menudId: 2
  },
  {
   id: 5,
   page: "door",
   menudId: 2
  }
 ]
 const arr2 = [{
   id: 1,
   page: "regions",
   menuId: 2
  },
  {
   id: 1,
   page: "countries",
   menuId: 2
  }
 ]

var result = arr1.reduce(function (prev, value) {

    var isDuplicate = false;
    for (var i = 0; i < arr2.length; i++) {
        if (value.id == arr2[i].id) {
            isDuplicate = true;
            break;
        }
    }
    
    if (!isDuplicate) {
        prev.push(value);
    }
    
    return prev;
    
}, []);


console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...