我对这个有点摸不着头脑。我有一个网址如下
http://localhost:50303/Directory?SearchUnits=km&Postcode=NG1%202AD&&Position[south]=53.9480673197085&Position[west]=-1.1444808302915135&Position[north]=52.9507652802915&Position[east]=-1.1417828697085497
当我像这样使用 angularjs 获取查询参数时
var qs = $location.search();
我得到一个像这样的对象
{
SearchUnits: "km",
Postcode: "NG1 2AD",
"Position[south]": "53.9480673197085",
"Position[west]": "-1.1444808302915135",
"Position[north]": "52.9507652802915",
"Position[east]": "-1.1417828697085497"
}
但是我需要它看起来像这样
{
SearchUnits: "km",
Postcode: "NG1 2AD",
Position: {
south: "53.9480673197085",
west: "-1.1444808302915135",
north: "52.9507652802915",
east: "-1.1417828697085497"
}
}
我该如何解析它?我尝试过字符串化然后解析,但这不起作用,任何帮助将不胜感激
最佳答案
如果键值是静态的,那么对其进行转换非常容易,只需迭代 ['south', 'west', 'north', 'east']
数组并检索根据需要值/分配/删除:
const obj = {
SearchUnits: "km",
Postcode: "NG1 2AD",
"Position[south]": "53.9480673197085",
"Position[west]": "-1.1444808302915135",
"Position[north]": "52.9507652802915",
"Position[east]": "-1.1417828697085497"
};
const Position = {};
obj.Position = Position;
['south', 'west', 'north', 'east'].forEach((key) => {
const inputKey = `Position[${key}]`;
Position[key] = obj[inputKey];
delete obj[inputKey];
});
console.log(obj);
关于javascript - 将具有字符串索引表示法的对象属性转换为点表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52065730/