将数组 1 和数组 2 值合并到数组 3 目标 c 中



我在将多个数组值合并为单个数组时遇到问题。以下是数组:

array1
(
{
    Id = 10166;
    Name = "Paul";
},
{
    Id = 10167;
    Name = "Dipleep";
},
{
    Id = 10168;
    Name = "John";
}
 )
array 2
(
{
    Country = USA;
},
{
    Country = India;
},
{
    Country = USA;
}
)
array3
(
{
    Id = 10166;
    Name = "Paul";
    Country = USA;
},
{
    Id = 10167;
    Name = "Dipleep";
    Country = India;
},
{
    Id = 10168;
    Name = "John";
    Country = USA;
}
)

我不知道该怎么做,但尝试了一下:

NSMutableArray *newArr = [[NSMutableArray alloc]init];
[newArr addObjectsFromArray:cartArray];
[newArr addObjectsFromArray:couponsArray];

但是添加错误。您能否为我找到将多个数组值组合到另一个数组中的解决方案。TIA

你可以

这样做,

for (int i = 0; i < array1.count; i++) {

    NSString *idOfObj = [[array1 objectAtIndex:i] objectForKey:@"Id"];
    NSString *name = [[array1 objectAtIndex:i] objectForKey:@"Name"];
    NSString *country = [[array2 objectAtIndex:i] objectForKey:@"Country"];
    NSDictionary *dic = @{@"Id" :idOfObj,@"Name" : name,@"Country" : country};
    [array3 addObject:dic];
}
NSLog(@"result array : %@",array3);

这是一个非常简单的任务:您迭代,创建一个新字典,将来自对象的值组合在同一索引中array1array2

NSMutableArray *array3 = [[NSMutableArray alloc] init];
for (NSUInteger i = 0; i < [array1 count]; i ++)
{
    NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] init];
    [tempDict addEntriesFromDictionary:array1[i]];
    [tempDict addEntriesFromDictionary:array2[i]];
    [array3 addObject:tempDict];
}

尽管可能很简单,但仍然存在一些问题,并可能导致崩溃。您可能不会陷入这些情况,但有相同问题的其他用户可能会陷入困境。

所以现在,您需要考虑的是:
• 如果array1[n]键与array2[n]有一个共同的键怎么办?因为字典中的键是唯一的。所以该值将被替换(检查addEntriesFromDictionary:的文档)
• 如果[array1 count][array2 count]不同怎么办?是的,for loop可能会由于越界问题而崩溃。
• 为什么您的数据一开始就这样分开?您正在尝试"重新同步"它们,这很好,但是您确定它们已正确同步吗?我的意思是,array1[n]值真的对应于array2[n]而不是array2[m]值?特别是如果您异步获取它们...

最新更新