Cfscript for循环复制?

时间:2013-08-27 12:13:01

标签: for-loop coldfusion coldfusion-8

我正在使用<cfscript>标记中的for循环构建的数组中获得重复项。可能是什么原因造成的?

我正在尝试构建一个数组,以便稍后使用数据库中的查询解析为JSON。我已经检查过,结果查询对象不包含重复的行;它有两个单独的行,虽然在for循环的数组中,我只得到第一行两次。

l.response.body.result = ArrayNew(1);
for(l.i=1;l.i lte l.events.recordcount;l.i = (l.i + 1)){
  ArrayAppend(l.response.body["result"], StructNew());
  l.eventIndex = ArrayLen(l.response.body["result"]);
  l.response.body["result"][l.eventIndex]["id"] = l.events.id;
  l.response.body["result"][l.eventIndex]["start"] = DateDiff("s","1/1/1970",l.events.startdate) * 1000;
  l.response.body["result"][l.eventIndex]["end"] = DateDiff("s","1/1/1970",l.events.enddate) * 1000;
  l.response.body["result"][l.eventIndex]["title"] = l.events.title;
  l.response.body["result"][l.eventIndex]["class"] = "class";
  l.response.body["result"][l.eventIndex]["url"] = l.url;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

别介意,我非常愚蠢:)我把cfloopfor循环混淆,认为只需要查询一行:)我把它更改为:

l.response.body.result = ArrayNew(1);
for(l.i=1;l.i lte l.events.recordcount;l.i = (l.i + 1)){
  ArrayAppend(l.response.body["result"], StructNew());
  l.eventIndex = ArrayLen(l.response.body["result"]);
  l.response.body["result"][l.eventIndex]["id"] = l.events.id[l.i];
  l.response.body["result"][l.eventIndex]["start"] = DateDiff("s","1/1/1970",l.events.startdate[l.i]) * 1000;
  l.response.body["result"][l.eventIndex]["end"] = DateDiff("s","1/1/1970",l.events.enddate[l.i]) * 1000;
  l.response.body["result"][l.eventIndex]["title"] = l.events.title[l.i];
  l.response.body["result"][l.eventIndex]["class"] = "class";
  l.response.body["result"][l.eventIndex]["url"] = l.url;
}