我正在尝试使用下划线比较2个对象,具体地说,我正在尝试比较“ id
”的键/值(因为内部的其他内容将发生变化)。我基本上只想检查对象A是否具有对象B没有的项目,将其从对象A中删除。这是我的尝试:
for(var c=0;c<$scope.types.length;c++){
var real = _.some($scope.storeTempName, function(it) {
return it.id == $scope.types[c].typeId;
});
if(real){
}else{
$scope.types.splice(c,1);
}
}
$scope.storeTempName
对象B在哪里,对象A在哪里$scope.types
。因此,如果$scope.types
没有东西$scope.storeTempName
,请将其删除(按ID和typyId跟踪类型)。
我的第一次尝试有效,但只会删除第一个。我的猜测是因为我从0 ++循环播放,并且当我删除第一个索引时索引的值正在更改,因此拼接针对的是错误的项。我不确定,可以使用一些帮助。感谢您的阅读!
只需使用_.filter。
$scope.types = _.filter($scope.types, function (type) {
return _.some($scope.storeTempName, function (it) { return it.id == type.typeId })
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句