JSFiddle - React, Tailwind, and code Playground
by dru_zod
JavaScript
// queryStringBuilder
var write = function (text) {
document.getElementsByTagName('body')[0].innerHTML += '<pre>' + JSON.stringify(text) + '</pre>';
},
queryString = {
"metricType": "1,2016",
"area": "E09000022:AdministrativeWard",
"period": "latest",
"value.valueType": "raw",
"value2.valueType": "band",
"value2.number": "3",
"value2.within": "E09000022",
"value3.valueType": "equalRanges",
"value3.number": "",
"query2.metricType": "2017",
"query2.area": "E05000417",
"query2.value.valueType": "standardDeviations",
"query2.value.within": "E09000022",
"columnGrouping": [
"metricType",
"period"
],
"rowGrouping": "area"
},
actualResult,
queryStringReader = (function (topNames, csvNames) {
var propNameRegex = /^(\S+?)([0-9]*)$/,
contains = function (arr, value) {
var i;
for (i = 0; i < arr.length; i++) {
if (arr[i] === value)
return true;
}
return false;
},
isTopName = function (name) {
return contains(topNames, name);
},
prepareValue = function (name, value) {
if (typeof value !== 'string' || !contains(csvNames, name))
return value;
return value.split(',');
},
expandObject = function (result, qs) {
var name, split;
for (name in qs) {
split = name.split('.');
if (split.length === 0)
continue;
if (topNames && topNames.length) {
if (!isTopName(split[0].match(propNameRegex)[1])) {
...