iOS遍历数组相同值元素到同一对象的子数组

saledGoodsArray数组中存储商品对象saledgoods,saledgoods有seatNo属性,将saledGoodsArray数组中saledgoods对象相同座位儿号的商品赋值给同一个人(personObject)的购买商品数组(purchasedGoodsArr)。

刚发现可以这样写,惭愧得紧!

  dataArray = [[NSMutableArray alloc] init];

    saledGoodsArray = [ShoppingCartDataCenter queryNoPayGoodsByFlightID:@"8815"];

    NSMutableDictionary *personObjectDics = [[NSMutableDictionary alloc] init];

    for (NSInteger i=0; i<saledGoodsArray.count; i++) {
        SaledGoods *saledgoods = [saledGoodsArray objectAtIndex:i];
        SCPersonObject * personObject = [personObjectDics objectForKey:[saledgoods seatNo]];
        if (!personObject) {
            personObject = [[SCPersonObject alloc] init];
            [[personObject purchasedGoodsArr] addObject:saledgoods];
            [personObjectDics setObject:personObject forKey:[saledgoods seatNo]];
        }else {
            [[personObject purchasedGoodsArr] addObject:saledgoods];
        }
    }

    for (SCPersonObject * personObject in [personObjectDics allValues]) {
        if ([personObject isKindOfClass:[SCPersonObject class]]) {
            [dataArray addObject:personObject];
        }
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 16:58:58

iOS遍历数组相同值元素到同一对象的子数组的相关文章

***php 数组添加关联元素的方法小结(关联数组添加元素)

我们这里介绍的是在数组中再增加关联数组了,这个就合成了多维数组,下面我来给大家举几个实例,希望对各位同学会有所帮助哈. 在"php 数组添加元素方法总结这篇文章中介绍了如何给数组添加元素,那么我想添加$array=array('title'=>'php教程')这样的元素怎么办呢. array_push, array_pop, array_shift, array_unshift 这几个函数都是为数字类型的索引数组设计的. 要想实现关联数组的添加可以使用array_merge方法或者是+操作

将一个数组里的元素添加到另外一个数组里

// ES5的写法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; Array.prototype.push.apply(arr1, arr2); // ES6的写法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1.push(...arr2);

几种去除数组中重复元素的方法

工作中遇到的一个问题,就是去除数组中重复的元素,记录一下几种有效的方法: 第一种思路:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>去除数组重复项</title> </head> &

jquery数组删除指定元素的方法:grep()

jquery数组删除指定元素的方法:grep() 金刚 数组 jquery javascript 元素 遇到的问题 今天遇到一个问题,删除数组中的一个指定元素,并返回新的数组. 我定义的js数组是这样的: var sexList=new Array[3]; sexList[0]="1"; sexList[1]="2"; sexList[2]=""; 想达到的效果 我想达到的效果是这样的: 删除索引=1的元素,并返回新数组. 返回的结果是: var

三个有序数组的公共元素

#include <stdio.h> #include <stdlib.h> /* 求三个有序数组的公共元素. */ /* 思路: 由于数组由小到大存储, 故若arr1[now1]<arr2[now2], 则arr1在now1之前的项也不可能等于arr2[now2], 故可将now1+1. 反之同理. */ int main(){ int arr1[] = {0,2,5,6,9}; int arr2[] = {2,4,5,7,8}; int arr3[] = {0,2,3,4

26、删除有序数组中的元素,数组仍然有序

删除有序数组中的元素,数组仍然有序 方法一: 删除一个有序数组的一个元素,采用两个数组实现 代码实现: /* 2017年6月19日16:16:31 功能:删除数组中一个数据之后数组依然有序 */ #include"stdio.h" #define M 9 int main() { int a[M] = {1,2,3,4,5,6,7,8,9}; int b[M-1]; int i, j, num; bool flag; printf("请输入将要删除的数据的数值:")

最大和子数组

最大和子数组问题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7 求这个数组中子数组的最大和. 分治法的思想: 我们来思考如何用分治法来求解最大子数组问题.假定我们要寻找子数组A[low,...,high]的最大子数组.使用分治技术,意味着我们要将子数组划分为两个规模尽量相等的子数组.也就是说,找到子数组的中央位置,比如mid,然后考虑求解两个子数组A[low,..

LC-581 最短未排序子数组

目标: 给出一个数组,找出里面需要重新排序的最小子数组,从而可以使得数组是升序的. 思路: 简单地首先将数组升序排序,然后比较前后与已排序数组不相同的元素,即可找到子数组. 代码: 1 class Solution { 2 public: 3 int findUnsortedSubarray(vector<int>& nums) { 4 // 先排序数组 5 vector<int> sorted = nums; 6 for (int i = 0; i < sorted

for循环使用range遍历数组尝试修改元素值的问题

在Golang语言中,将一个数组名作为参数传给一个函数,背后的操作是产生一个该数组的副本,在函数中对这个数组副本做的操作都不会影响原数组本身.比如下面这个例子 package main import "fmt" func main() { arr := [5]int{1, 2, 3, 4, 5} fmt.Println(arr) //1 2 3 4 5 Do(arr) //尝试将arr清零 fmt.Println(arr) //1 2 3 4 5 } func Do(arr [5]in