如何在ios中使用可变数组获得所需的字典结果



我有三个可变数组:

  1. wkdatearray 值如下所示:日期从 2016-01-10 到 2016-01-16。

  2. 像这样的 spentonarray 值:2016-01-10 到 2016-01-13。

  3. 小时数组值如下:7,3,4,5,1。

因此,我像这样比较wkdatearray和spentarray的索引对象:

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 = [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 的索引值不匹配且不等于,则像这样的小时值 @"' 作为 self.wkdatearray[0] 的对象,就像 newsheet 字典中的这样。现在,我默认将对象值设置为 @"for self.wkdatearray[0...6]。

这里的小时数组只有 5 个值。

如何同时满足 for 循环中的两个条件?或者有没有其他方法可以做到这一点?

首先,使 newSheet 字典可变。您不需要 2 个 for 循环。

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

我们首先取 wkdatearray.countspentonArray.count 的最小值,因为例如,如果spentonArray中只有 2 个项目,那么如果我们尝试使用wkdatearray的索引 4,那么我们没有索引 4 spentonArray,这意味着 wkdatearrayspentonArray 的索引应该相等的主要条件失败了。因此,通过取最小值,我们确保我们只比较那些在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 {
   }
}

如果"匹配或等于",你的意思是如果索引相同并且字符串匹配。

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 语句的开头,该语句具有if (i==j && ...

最新更新