in pytheas-core/src/main/resources/js/form2js/js2form.js [200:245]
function normalizeName(name, delimiter, arrayIndexes)
{
var nameChunksNormalized = [],
nameChunks = name.split(delimiter),
currChunk,
nameMatches,
nameNormalized,
currIndex,
newIndex,
i;
name = name.replace(_arrayOfArraysRegexp, '[$1].[$2]');
for (i = 0; i < nameChunks.length; i++)
{
currChunk = nameChunks[i];
nameChunksNormalized.push(currChunk);
nameMatches = currChunk.match(_lastIndexedArrayRegexp);
if (nameMatches != null)
{
nameNormalized = nameChunksNormalized.join(delimiter);
currIndex = nameNormalized.replace(_lastIndexedArrayRegexp, '$3');
nameNormalized = nameNormalized.replace(_lastIndexedArrayRegexp, '$1');
if (typeof (arrayIndexes[nameNormalized]) == 'undefined')
{
arrayIndexes[nameNormalized] = {
lastIndex: -1,
indexes: {}
};
}
if (currIndex == '' || typeof arrayIndexes[nameNormalized].indexes[currIndex] == 'undefined')
{
arrayIndexes[nameNormalized].lastIndex++;
arrayIndexes[nameNormalized].indexes[currIndex] = arrayIndexes[nameNormalized].lastIndex;
}
newIndex = arrayIndexes[nameNormalized].indexes[currIndex];
nameChunksNormalized[nameChunksNormalized.length - 1] = currChunk.replace(_lastIndexedArrayRegexp, '$1$2' + newIndex + '$4');
}
}
nameNormalized = nameChunksNormalized.join(delimiter);
nameNormalized = nameNormalized.replace('].[', '][');
return nameNormalized;
}