function calc(x, y, operation) {
var operations = {
plus: function(x, y) { return x + y },
minus: function(x, y) { return x - y },
multiply: function(x, y) { return x * y },
divided: function(x, y) { return x / y },
}
return operations[operation] && operations[operation](x, y);
}
calc(10, 20, "plus"); // 30
{
"javascript": {
"st": 1,
"st2": 2
},
"res": {
"par1": {
"par2": 212
},
"js": 2123
}
}
var str = "javascript.st =1 \
javascript.st1 = 2 \
res.par1.par2 =212 \
res.js =2123";
function parser(str) {
var rgxp = /([\S]*)\s?=\s?(\d*)/g,
result = {},
substr, keys, parents, i;
while (substr = rgxp.exec(str)) {
substr = substr[0].split("=")
keys = substr[0].trim().split(".")
parent = result
for (i = 0, ln = keys.length; i < ln; i++) {
parent[keys[i]] = parent[keys[i]] || {}
i == (ln - 1) ? (parent[keys[i]] = substr[1].trim()) : (parent = parent[keys[i]])
}
}
return result
}
JSON.stringify(parser(str))
// {"javascript":{"st":"1","st1":"2"},"res":{"par1":{"par2":"212"},"js":"2123"}}
function params(str) {
var res = {};
(str || location.search).toLowerCase().replace(/^\?/, "").split("&").forEach(function(str) {
str = str.split("=");
res[str[0]] = str[1] || true;
});
return res;
}
params("?name=Ivan&surname=Ivanov")
// Object {name: "Ivan", surname: "Ivanov"}
function query(obj) {
var str = "";
for (var prop in obj) {
str && (str += "&") || (str = "?");
if (obj.hasOwnProperty(prop)) str += prop + "=" + obj[prop];
}
return str;
}
query({name: "Ivan", surname: "Ivanov"})
// "?name=Ivan&surname=Ivanov"