如何检查较小数组中的值是否在较大数组中?

发布于 2024-11-30 10:44:32 字数 311 浏览 0 评论 0原文

我有两个数组:

符号 - 较小的数组 fetchedSymbolsArray - 更大的数组

如何检查符号中的内容是否也在 fetchedSymbolsArray 内?

假设

symbols = ["AAPL", "GOOG", "YHOO"];
fetchedSymbolsArray = ["AAPL", "GOOG", "YHOO", "MSFT"];

我想检查是否有重复项,然后将 fetchedSymbolsArray 中的任何其他元素添加回符号中。在这种情况下,将添加 MSFT。

I have two arrays:

symbols - smaller array
fetchedSymbolsArray - larger array

How can I check to see if the contents in symbols is also inside of fetchedSymbolsArray?

Lets assume

symbols = ["AAPL", "GOOG", "YHOO"];
fetchedSymbolsArray = ["AAPL", "GOOG", "YHOO", "MSFT"];

I want to check to see for duplicates, and then add any additional elements in fetchedSymbolsArray back into symbols. In this case, MSFT would be added.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半城柳色半声笛 2024-12-07 10:44:32

试试这个。

BOOL contentIsInLargerArray = NO;
for (id *object in symbols) {
    if ([fetchedSymbolsArray containsObject:object])
        contentIsInLargerArray = YES;
}
return contentIsInLargerArray;

这使用 -(BOOL)containsObject:(id)anObject 而不是 -[indexObObject:]。

try this.

BOOL contentIsInLargerArray = NO;
for (id *object in symbols) {
    if ([fetchedSymbolsArray containsObject:object])
        contentIsInLargerArray = YES;
}
return contentIsInLargerArray;

This uses -(BOOL)containsObject:(id)anObject instead of -[indexObObject:].

醉梦枕江山 2024-12-07 10:44:32

您可以使用NSArray方法

- (NSUInteger)indexOfObject:(id)anObject

来测试数组是否具有某个对象。如果没有,返回结果将为NSNotFound。这是检查一个数组是否是另一个数组的子集的简单方法:

NSUInteger index;
for (int i=0; i<[symbols count]; ++i) {
    index = [fetchedSymbolsArray indexOfObject:[symbols objectAtIndex:i]];
    if (index == NSNotFound) {
        return NO;
    }
}
return YES;

当然,可以使用快速枚举或其他技巧来改进,具体取决于数组中的对象、它们是否已排序等。

You can use the NSArray method

- (NSUInteger)indexOfObject:(id)anObject

to test whether or not an array has a certain object. If not, the return result will be NSNotFound. Here's simple way to check if one array is a subset of another:

NSUInteger index;
for (int i=0; i<[symbols count]; ++i) {
    index = [fetchedSymbolsArray indexOfObject:[symbols objectAtIndex:i]];
    if (index == NSNotFound) {
        return NO;
    }
}
return YES;

Of course, this can be improved using fast enumeration or other tricks depending on the objects in the arrays, whether they are sorted, etc.

请你别敷衍 2024-12-07 10:44:32
for (int i = 0; i<[symbols count]; i++) {
    id myObj = [symbols objectAtIndex:i]; // I set id because type is unknown
    if ([fetchedSymbolsArray indexOfObject:myObj] != NSNotFound) {
        NSLog(@"Object %@ found in fetched symbols", myObj);
    }
} 
for (int i = 0; i<[symbols count]; i++) {
    id myObj = [symbols objectAtIndex:i]; // I set id because type is unknown
    if ([fetchedSymbolsArray indexOfObject:myObj] != NSNotFound) {
        NSLog(@"Object %@ found in fetched symbols", myObj);
    }
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文