0

私のプロジェクトには 2 つの NSArray があり、両方の配列に周波数とキーの 2 つの値が含まれています。次に、これら 2 つの NSArray をキーの参照と比較する必要があります。次に、共通のキーを見つける必要があります。この共通のキーから、各配列の周波数を別の配列に格納して、各配列の共通カウントを取得する必要があります。

Printing description of xSeriesArray:

{
  frequency = 60;
  key = 5591090;
},
{
  frequency = 50;
  key = 5591089;
},
{
  frequency = 40;
  key = 5591082;
},
{
 frequency = 30;
 key = 5591078;
},
{
 frequency = 20;
 key = 5591077;
},
{
 frequency = 10;
 key = 5591076;
}


Printing description of ySeriesArray:
<__NSArrayM 0xa1e1270>
  {
   frequency = 500;
   key = 5591089;
  },
  {
   frequency = 400;
   key = 5591082;
 },
 {
  frequency = 300;
  key = 5591078;
  },
 {
  frequency = 200;
  key = 5591077;
 },
 {
  frequency = 100;
  key = 5591076;
 }

上記の配列データでは、最初の配列には 6 つのカウントがあり、別の配列には 5 つのカウントがあります。これら 2 つの NSArray から共通のキーを見つけるのを手伝ってください

4

1 に答える 1

4

使用セット これは、共通の値を見つける最も簡単な方法です。

NSMutableSet* set1 = [NSMutableSet setWithArray:yourFirstArray];
NSMutableSet* set2 = [NSMutableSet setWithArray:yourSecondArray];
[set1 intersectSet:set2]; //this will give you only the obejcts that are in both sets

NSArray* result = [set1 allObjects];

Swiftコードを確認してください:-

var set1 = Set<AnyHashable>(yourFirstArray)
var set2 = Set<AnyHashable>(yourSecondArray)
set1.intersect(set2) //this will give you only the obejcts that are in both sets

let result = Array(set1)
于 2013-10-15T06:48:15.157 に答える