Трудно рассуждать о вашей функции, потому что она ничего не возвращает. Мне было бы очень трудно проследить ход программы, которая основывалась только на этих побочных эффектах, подобных этой.
Но одна вещь, которую вы, вероятно, могли бы сделать, это разложить эту функцию еще раз и начать использовать возвращаемые значения. Например, отделите этот фрагмент кода и верните redirectURL в вашей новой функции.
if (redirectURL) { ---->Nesting 2
var pageQuery = '';
var redirectQuery = '';
if (window.location.search) {
pageQuery = window.location.search.substr(1).split('&');
}
if (redirectURL.indexOf('?') > -1) { ---->Nesting 3
var redirectSplit = redirectURL.split('?');
redirectURL = redirectSplit[0];
if (typeof redirectSplit[1] !== 'undefined') { ---->Nesting 4
redirectQuery = redirectSplit[1].split('&');
}
}
var mergedQueries = com.trp.fai.utility.mergeStringArrays(redirectQuery, pageQuery);
if (typeof mergedQueries !== 'undefined' && mergedQueries.length > 0) {
newQuery = '?' + mergedQueries.join('&');
}
} else {
redirectURL = 'http://corporate.troweprice.com';
newQuery = '?src=' + countryCode;
}
Если вам нужно вернуть несколько элементов, вы можете либо использовать глобальные переменные, либо вернуть объект и деструктурировать его вдругая сторона.