Я строю упорядоченную структуру
stMbr = [:];
Добавляется много-много полей.
stMbr.Name = "";
stMbr.Address = "";
stMbr.City = "";
...
В конце концов я попал в последнее поле, которое добавляется. После того, как упорядоченная структура будет построена, мне нужно будет ее обработать.
for (key in stMbr) {
...
}
Когда я обрабатываю последнюю клавишу, мне нужно сделать это, обратите внимание, что я нажал последнюю клавишу.
Есть ли способ узнать, какой последний ключ в упорядоченной структуре?
Более новые версии ColdFusion имеют тип данных, называемый структурой порядка. Это похоже на структуру, но порядок ключей сохраняется. Он создается с использованием [:] или более подробно StructNew("Ordered").





Оказывается, это не так уж и сложно. Мне просто нужно было использовать функцию-член keylist()
if (key == listlast(stMbr.keylist())) {
...
}
Обновленный ответ
Вместо повторной обработки того же списка просто сохраните последний ключ
lastKey = listlast(stMbr.keylist());
for (key in stMbr) {
...
if (key == lastKey) {
...
}
}
Это не очень эффективно, не так ли? Что вы хотите сделать с последним элементом? Когда есть упорядоченная структура, вы можете знать, какой элемент является последним, и обрабатывать его.
Я передаю упорядоченные структуры в генератор csv. Последний должен иметь разделитель строк, а не разделитель столбцов. Следовательно, мне нужно знать, когда я на последнем.
Да, но вы можете сделать это перед циклом, чтобы он выполнялся только один раз. Редактировать... который... вы уже разобрались. Не бери в голову. Продолжать :-)
Что вы имеете в виду под упорядоченной структурой? Вы имеете в виду порядок сортировки ключевых значений?