Рекурсивные функции - ваш друг:
a = ['value0', 'value1', 'value2'];
r = function(a, h, n){
top = a.head();
newhash = h.put({'entry.#{n}.single':top});
a.length() > 1 => r(a.tail(), newhash, n+1) | newhash;
};
out = r(a, {}, 0);
out
имеет значение {'entry.1.single' :'value1','entry.0.single' :'value0','entry.2.single' :'value2'};
Здесь необходима рекурсивная функция, потому что вы делаете преобразование структуры. Если вы хотели вернуть массив, вы могли бы использовать метод map()
.
Кроме того, следите за тем, как ваш базовый сценарий пишет рекурсивные функции. KNS устанавливает лимит рекурсии.