【发布时间】:2021-09-28 10:07:33
【问题描述】:
我有一个需要转换为对象的字符串。但是字符串有重复的项目。由于 JSON 对象不能包含具有相同键的 2 个项目。第二项是覆盖第一项。 如何合并重复项并推送到数组?
var string = "test-1=owner&test-1=driver&test-2=Yes&test-3=2&test-4=sun&test-4=moon&test-5=not-agree&test-6=dogs&test-6=testing+js+object&test-7=Testing+js+function&test-7=Testing+js+array"
var stringMod = string.split("&");
var stringObj = {};
stringMod.forEach(function(json) {
var jsonSplit = json.split("=");
stringObj[jsonSplit[0]] = [jsonSplit[1]];
});
console.log(stringObj,'stringObj');
期望的输出:
{
"test-1": ["owner","driver"],
"test-2": ["Yes"],
"test-3": ["2"],
"test-4": ["sun","moon"],
"test-5": ["not-agree"],
"test-6": ["dogs","testing+js+object"],
"test-7": ["Testing+js+function","Testing+js+array"]
}
这里是工作小提琴的链接:https://jsfiddle.net/sjoh9rqp/
你能帮我完成这个吗?
【问题讨论】:
-
使用
[...(stringObj?.[jsonSplit[0]] || []), jsonSplit[1]];可能有效。 (虽然不漂亮)
标签: javascript html jquery json object