相关文章推荐
有胆有识的泡面  ·  涨姿势:【异王】漫画里神秘的“埃癸斯之盾”_宙斯·  2 年前    · 
安静的斑马  ·  原神角色怎么放主页上 ...·  2 年前    · 
热情的日光灯  ·  2022年欧洲新能源车销量榜:Model ...·  2 年前    · 
逼格高的花生  ·  被忽视的玩电前辈 ...·  2 年前    · 
冷静的围巾  ·  113 炼狱之间-今后,我就是法师的爹-漫画牛·  2 年前    · 
Code  ›  ios - 如何让一个数组中的字典,如果字典中有重复的id.将重复的id的字典进行数组整合...。 -
数组 nsmutablearray
https://segmentfault.com/q/1010000004091962
追风的机器猫
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. ios
  4. 问答详情

如何让一个数组中的字典,如果字典中有重复的id.将重复的id的字典进行数组整合...。

头像
JoeCoder
44 1 5 6
发布于
2015-12-03
更新于
2015-12-03

需求,
有一个数组, 数组里面存放着字典, 我想让这个数组中的所有字典中的,"id"这个key不相同的字典加入到一个新的数组中, 相同的我要进行数量整合,然后合并成一个字典放入到新的数组中, 大致数据结构如下
例如:

NSArray *shopList = @[
                      @{@"id" : @"DDS434313", @"name": @"可乐", @"num" : @"5", @"inventory" : @"400"},
                      @{@"id" : @"OOYU23423", @"name": @"雪碧", @"num" : @"9", @"inventory" : @"300"},
                      @{@"id" : @"PW0973434", @"name": @"咖啡", @"num" : @"1", @"inventory" : @"80"},
                      @{@"id" : @"9JLHG2323", @"name": @"橙汁", @"num" : @"11", @"inventory" : @"200"},
                      @{@"id" : @"JLJLYOYO1", @"name": @"王老吉", @"num" : @"7", @"inventory" : @"150"},
                      @{@"id" : @"DDS434313", @"name": @"可乐", @"num" : @"7", @"inventory" : @"320"}

其中数组有两个包含可乐的字典, 我想通过id将两个字典的数据整合成一个字典, 加上其他不含重复的字典合并成一个新的数组.请问这个算法, 该怎么写呢 , 最好贴代码 , 非常感谢.

ios object
阅读 8.6k
4 个回答
得票 最新
头像
ccwenlin
90 1
发布于
2015-12-03

100块我给你写,不能更少了。

头像
阳余
1 1
发布于
2018-11-07
更新于
2018-11-07
新手上路,请多包涵

(NSMutableArray )arrmodel:(NSMutableArray )array{

NSMutableArray *resrarray = [[NSMutableArray alloc]init];
resrarray = [NSMutableArray array];
[resrarray addObject:array[0]];
[array removeObjectAtIndex:0];
for (NSDictionary *dic in array) {

NSInteger index = 0;
for (NSDictionary *dicv in resrarray) {
    if (dic[@"goods"][@"id"] == dicv[@"goods"][@"id"]) {
        NSMutableDictionary *dics = [NSMutableDictionary dictionary];
        [dics setDictionary:dicv];
        NSInteger number = [dics[@"num"] integerValue] + 1;
        [dics setValue:[NSString stringWithFormat:@"%ld",number] forKey:@"num"];
        [resrarray replaceObjectAtIndex:index withObject:dics];
    }else{
        [resrarray addObject:dicv];
    index++;

}
return resrarray;

}
把数组换成模型就好了,我也是刚好要做这个

头像
半世晨光123456
1
发布于
2019-09-06
新手上路,请多包涵

//来得比较晚 你如果还没有解决 可以用

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
 
推荐文章
有胆有识的泡面  ·  涨姿势:【异王】漫画里神秘的“埃癸斯之盾”_宙斯
2 年前
安静的斑马  ·  原神角色怎么放主页上 原神手游主页怎么展示角色并显示角色详情_原神_九游手机游戏
2 年前
热情的日光灯  ·  2022年欧洲新能源车销量榜:Model Y夺冠 - 车质网
2 年前
逼格高的花生  ·  被忽视的玩电前辈 大众汽车早在1970年就已涉足纯电领域_搜狐汽车_搜狐网
2 年前
冷静的围巾  ·  113 炼狱之间-今后,我就是法师的爹-漫画牛
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号