merge 字典数组 array dict

//
//  ViewController.m
//  h
//
//  Created by jason on 13-3-1.
//  Copyright (c) 2013年 hufeng. All rights reserved.
//


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController
typedef struct 
{
    BOOL isHasKey;
    int position ;
}ReturnDate;


- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    
  NSDictionary *dict =  @{
      @"pushInfo": @[
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info001",
                         @"modeType": @"db",
                         @"systemType": @"oa"
                     },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info002",
                         @"modeType": @"st",
                         @"systemType": @"oa"
                         },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info003",
                         @"modeType": @"ls",
                         @"systemType": @"oa"
                         },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info004",
                         @"modeType": @"ed",
                         @"systemType": @"oa"
                         },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info002",
                         @"modeType": @"sd",
                         @"systemType": @"oa"
                         },
  @{
                         @"content": @"处理批示",
                         @"infoId": @"info005",
                         @"modeType": @"sd",
                         @"systemType": @"oa"
                         },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info005",
                         @"modeType": @"sddd",
                         @"systemType": @"oa"
                         },
                     @{
                         @"content": @"处理批示",
                         @"infoId": @"info006",
                         @"modeType": @"sddd",
                         @"systemType": @"oa"
                         },
                     ]
        };
//    NSLog(@"the dict = %@" , dict);
    
    NSArray *array = [dict objectForKey:@"pushInfo"];
    [self returnKey:array key:@"info002"];


    NSMutableArray *uniquarray = [NSMutableArray array];
    NSMutableArray *uniquarraytmp = [[array mutableCopy]autorelease];
    for (int i = [uniquarraytmp count]; i>0; i--)
    {
            NSString *key = [[uniquarraytmp objectAtIndex:i-1] objectForKey:@"infoId" ];
            ReturnDate dt = [self returnKey:uniquarray key:key];
            if(dt.isHasKey)
            {
                NSMutableDictionary *dictA =
                [[[uniquarraytmp objectAtIndex:i-1]mutableCopy]autorelease];
                NSString *a =[dictA objectForKey:@"modeType"];
                NSMutableDictionary *dictB =
                [[[uniquarray objectAtIndex:dt.position]mutableCopy]autorelease];
                NSString *b =[dictB objectForKey:@"modeType"];
                [dictA setObject:[NSString stringWithFormat:@"%@^%@",a,b] forKey:@"modeType"];
                [uniquarray replaceObjectAtIndex:dt.position withObject:dictA];
            }
            else
            {
                [uniquarray addObject: [uniquarraytmp objectAtIndex:i-1]];
                [uniquarraytmp removeObjectAtIndex:i-1];
            }
    }
        NSLog(@"the after \n%@",uniquarray);
}


-(ReturnDate)returnKey:(NSArray *)array key:(id)key
{
    int i =0;
    ReturnDate date;
    date.position =0;
    date.isHasKey =NO;


    for (NSDictionary *dict in array)
    {
        if ([[dict objectForKey:@"infoId"] isEqual:key]
            )
        {
            date.isHasKey = YES;
            date.position =i;
            break;
        }
        else
        {
            i++;
        }
    }
    return date;
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值