javascript - 无法读取未定义的属性“######”
问题描述
我有两个 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
inisde 的值$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”
这可能是由于$scope.removepl[i].pageid
我在 for 循环中使用迭代造成的吗?
有人对此有解决方案吗?
解决方案
在这里你可以做这样的事情。我已经尝试过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);
推荐阅读
- gradle - 如何将现有的 Micronaut 应用程序升级到新的 Micronaut 版本 1.1.2?
- php - 将变量传递给 laravel 模型引导
- java - Azure Java API - 如何获取 vmss 缩放设置 json
- apache-kafka - 尝试检索有关组的详细信息时,Kafka 使用者组不存在
- php - Laravel Eloquent - 条件数据获取
- angular - Angular dom 不更新更改
- big-o - 带有 if else 语句的三个嵌套 for 循环的大 O 表示法
- xamarin.forms - 棱镜部分视图 xamarin 形式
- python - 在anaconda环境中导入tensorflow时出现DLL错误
- postgresql - 即使启用了 pgcrypto 扩展,AWS RDS Postgres Crypto 函数也不起作用