Это функция, которую я создал некоторое время назад, и я вполне доволен. Это не чувствительно к регистру - это удобно. Кроме того, если запрошенный QS не существует, он просто возвращает пустую строку.
Я использую сжатую версию этого.
Я уверен, что это может быть оптимизировано или сделано по-другому, чтобы работать быстрее, но это всегда отлично работает для того, что мне нужно.
g2]
Наслаждайтесь.
function getQSP(sName, sURL) {
var theItmToRtn = "";
var theSrchStrg = location.search;
if (sURL) theSrchStrg = sURL;
var sOrig = theSrchStrg;
theSrchStrg = theSrchStrg.toUpperCase();
sName = sName.toUpperCase();
theSrchStrg = theSrchStrg.replace("?", "&") theSrchStrg = theSrchStrg + "&";
var theSrchToken = "&" + sName + "=";
if (theSrchStrg.indexOf(theSrchToken) != -1) {
var theSrchTokenLth = theSrchToken.length;
var theSrchTokenLocStart = theSrchStrg.indexOf(theSrchToken) + theSrchTokenLth;
var theLocOfNextAndSign = theSrchStrg.indexOf("&", theSrchTokenLocStart);
theItmToRtn = unescape(sOrig.substring(theSrchTokenLocStart, theLocOfNextAndSign));
}
return unescape(theItmToRtn);
}
Правильно ли разделение элементов массивов, похоже, разрешает проблему?
var UpperCoherenceLimit = 9.99;
var LowerCoherenceLimit = 4.98;
var CollectedValue = ["1.7865", "3.7865", "4.786532564000", "5.7865", "6.7865", "7.7865"];
var CreatedOn = ["7/1/2018 12:00:00 AM", "7/2/2018 12:00:00 AM", "7/3/2018 12:00:00 AM", "7/4/2018 12:00:00 AM", "7/5/2018 12:00:00 AM", "7/7/2018 12:00:00 AM"];
var SkippedValueList = [];
var oCollectedValue = [];
var oCreatedOn = [];
var DisableCoherenceError = true;
for (var i = 0; i < CollectedValue.length; i++)
{
if(CollectedValue[i] > UpperCoherenceLimit || CollectedValue[i] < LowerCoherenceLimit)
{
if(UpperCoherenceLimit != LowerCoherenceLimit)
{
SkippedValueList.push(CollectedValue[i])
}
}
else
{
oCollectedValue.push(CollectedValue[i])
oCreatedOn.push(CreatedOn[i])
}
}
console.log(oCollectedValue);
console.log(oCreatedOn);
Проходит следующий тест:
require('chai').should();
describe('Arrays', () => {
it('needs commas', () => {
Route = "";
var UpperCoherenceLimit = 9.99;
var LowerCoherenceLimit = 4.98;
var CollectedValue = ["1.7865", "3.7865", "4.786532564000", "5.7865", "6.7865", "7.7865"];
var CreatedOn = ["7/1/2018 12:00:00 AM", "7/2/2018 12:00:00 AM", "7/3/2018 12:00:00 AM", "7/4/2018 12:00:00 AM", "7/5/2018 12:00:00 AM", "7/7/2018 12:00:00 AM"];
var SkippedValueList = [];
var oCollectedValue = [];
var oCreatedOn = [];
var DisableCoherenceError = true;
for (var i = 0; i < CollectedValue.length; i++) {
if (CollectedValue[i] > UpperCoherenceLimit || CollectedValue[i] < LowerCoherenceLimit) {
if (UpperCoherenceLimit != LowerCoherenceLimit) {
if (DisableCoherenceError == false) {
SkippedValueList.push(CollectedValue[i])
}
else {
SkippedValueList.push(CollectedValue[i])
}
}
}
else {
oCollectedValue.push(CollectedValue[i])
oCreatedOn.push(CreatedOn[i])
}
}
if (oCollectedValue.length == 0) {
Route = 'SKIP';
}
oCreatedOn.length.should.equal(3);
});
});
Итак, код, который вы опубликовали, не отражает проблему, с которой вы столкнулись. Пожалуйста, дайте нам Минимальный, Полный и Подтверждаемый Пример