簡體   English   中英

如何在iOS中使用可變數組獲得所需的字典結果

[英]How to get the desired dictionary result using mutable arrays in ios

我有三個可變數組:

  1. wkdatearray的值是這樣的:日期從2016-01-10到2016-01-16。

  2. 花了這樣的值:2016年1月10日至2016年1月13日。

  3. hoursarray的值是這樣的:7、3、4、5、1。

所以,我比較wkdatearray和花數組的索引對象是這樣的:

for (int i = 0; i < self.wkDateArray.count; i++) {
 for (int j = 0; j < self.spentonArray.count; j++) {
  if ([
    [self.wkDateArray objectAtIndex: i] isEqualToString: [self.spentonArray objectAtIndex: j]
   ]) {

   NSLog(@ "Matched Indexes %d %@", i, [self.wkDateArray objectAtIndex: i]);
  } else {

  }
 }

現在我想得到如下結果:

如果self.wkdatearray和self.spentonarray的索引值匹配或相等,那么我必須將小時數組值設置為self.wkdatearray [0],[1]…[6]的對象。 在newsheet詞典中是這樣的。 現在,我手動輸入字符串@“”。

newSheet = [NSDictionarydictionaryWithObjectsAndKeys:strEntryID,entryID, proj,project,projID,projectId, strIssue,issue,strIssueID,issueId, strActivity,activity,strActivityId,activityId,@"",comment,@"",self.wkDateArray[0],@"",self.wkDateArray[1],@"",self.wkDateArray[2],@"",self.wkDateArray[3],@"",self.wkDateArray[4],@"",self.wkDateArray[5],@"",self.wkDateArray[6], nil];

如果self.wkdatearray和self.spentonarray的索引值不匹配且不相等,則在newsheet詞典中,將類似@“的小時值作為self.wkdatearray [0]的對象。 現在,我默認將self.wkdatearray [0 ... 6]的對象值設置為@“”。

在這里,小時數組僅包含5個值。

如何在for循環中同時執行這兩個條件? 還是有其他方法可以做到這一點?

如果“匹配或等於”,則表示索引相同且字符串匹配。

for (int i = 0; i < self.wkDateArray.count; i++) {
 for (int j = 0; j < self.spentonArray.count; j++) {
  if (i==j && [
    [self.wkDateArray objectAtIndex: i] isEqualToString: [self.spentonArray objectAtIndex: j]
   ]) {

   NSLog(@ "Matched Indexes %d %@", i, [self.wkDateArray objectAtIndex: i]);
  } else {

  }
 }

注意具有if (i==j && ...

首先,使newSheet詞典可變。 您不需要2個for循環。

int minIndexCount = MIN(self.wkdatearray.count, self. spentonArray.count)

我們首先獲取wkdatearray.countspentonArray.count的最小值,因為例如,如果在spentonArray中只有2個項目,那么如果我們嘗試使用wkdatearray索引4,那么在spentonArray就沒有索引4,這意味着wkdatearrayspentonArray索引應該相等失敗。 因此,通過使用min,我們確保只比較wkdatearrayspentonArray可用的那些索引。

for (int i = 0; i < minIndexCount; i++) {
   if ([[self.wkDateArray objectAtIndex: i] isEqualToString: [self.spentonArray objectAtIndex: i]]) 
   {

      NSLog(@ "Matched Indexes %d %@", i, [self.wkDateArray objectAt Index: i]);
      [newSheet setValue:self.hoursarray[i] forKey:self.weekArray[i]]

   } else {

   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM