我有两个$(".overlay").hide();
$(".item").click(function(){
var numitem = $(this).index()+1;
$(".overlay").show();
window.location.href = $(this).find(".overlay").attr("href");
alert(numitem);
});
,名为array
和array1
。我想从array2
中移除array1
中可以在两个数组中找到"nameId"
键的值的每个对象。实际上我是在for loop
中尝试的,但它没有意义。它不会崩溃,它只是简单地调用else statement
中的日志,我不明白为什么会发生。也许有人可以告诉我正确的解决方案。
NSMutableArray *newArray = [self.array1 mutableCopy];
for (PFObject * object in newArray) {
PFObject *placeholderObject = object;
for (PFObject *object2 in self.array2) {
if ([placeholderObject[@"nameId"] isEqualToString:object2[@"nameId"]]) {
[self.array1 removeObject:object];
NSLog (@"EXISTING OBJECT FOUND %@", object);
} else {
NSLog(@"UNIQUE OBJECT FOUND %@", idO[@"hirCime"]);
}
}
}
答案 0 :(得分:0)
创建数组的mutableCopy时,您创建一个新数组,其中包含每个对象的副本,但它们不是相同的,因此object
是newArray
的成员但是不是self.array1
的成员,因此您无法将其从该数组中删除。
这应该有效:
// Creates a new empty mutable array
NSMutableArray *newArray = [@[] mutableCopy];
for (PFObject *object in self.array) {
BOOL found = NO;
for (PFObject *object2 in self.array2) {
if ([object[@"nameId"] isEqualToString:object2[@"nameId"]]) {
found = YES;
NSLog (@"EXISTING OBJECT FOUND %@", object);
break;
} else {
NSLog(@"UNIQUE OBJECT FOUND %@", idO[@"hirCime"]);
}
}
if (!found) {
[newArray addObject:[object copy]];
}
}
// And maybe you want this
self.array = newArray;