В поисках чистого способа преобразования объекта JavaScript, содержащего массивы в качестве значений, в строку запроса, совместимую с параметрами поиска. Сериализация элемента из каждого массива перед переходом к следующему индексу.
Использование библиотек, таких как querystring или qs, прекрасно преобразует объект, но обрабатывает каждый массив независимо. Передача полученной строки на сервер (которую я не могу изменить) вызывает ошибку в обработке элементов, поскольку каждое предыдущее значение перезаписывается следующим. Использование любого вида записи массива в строке запроса не поддерживается. Единственный вариант, который я не пробовал, - это настраиваемая функция сортировки, но кажется, что это будет хуже, чем написание настраиваемой функции для анализа объекта. Любая ревизия объекта, которая приведет к ожидаемому результату, также приветствуется.
var qs = require("qs")
var jsobj = {
origString:['abc','123'],
newString:['abcd','1234'],
action:'compare'
}
qs.stringify(jsobj,{encode:false})
qs.stringify(jsobj,{encode:false,indices:false})
qs.stringify(jsobj,{encode:false,indices:false,arrayFormat:'repeat'})
Результат возвращен
"origString=abc&origString=123&newString=abcd&newString=1234&action=compare"
Желаемый результат будет
"origString=abc&newString=abcd&origString=123&newString=1234&action=compare"