Не уверен, что это нарушает правильное правило кодирования хорошей практики, но я обычно выхожу с этим:
if(typeof __t == 'undefined')
__t = 0;
clearTimeout(__t);
__t = setTimeout(callback, 1000);
Это предотвращает необходимость объявлять таймер из функции.
EDIT: это также не объявляет новую переменную при каждом вызове, но всегда перерабатывает то же самое.
Надеюсь, что это поможет.
Я считаю, что использование цикла foreach
может быть самым простым:
foreach {a b} $listC {
lappend listA $a
lappend listB $b
}