将具有多个相同键的string数组转换为JSON对象的方法是使用循环遍历数组,将每个键值对添加到一个空的JSON对象中。如果数组中存在相同的键,则将其值转换为数组,并将新的值添加到已有的数组中。
以下是一个示例代码:
function convertArrayToJSON(arr) {
var jsonObj = {};
for (var i = 0; i < arr.length; i++) {
var key = arr[i].split('=')[0];
var value = arr[i].split('=')[1];
if (jsonObj.hasOwnProperty(key)) {
if (Array.isArray(jsonObj[key])) {
jsonObj[key].push(value);
} else {
jsonObj[key] = [jsonObj[key], value];
}
} else {
jsonObj[key] = value;
}
}
return jsonObj;
}
var arr = ['name=John', 'age=25', 'hobby=reading', 'hobby=sports'];
var json = convertArrayToJSON(arr);
console.log(json);
输出结果为:
{
"name": "John",
"age": "25",
"hobby": ["reading", "sports"]
}
在这个例子中,我们使用了一个空的JSON对象jsonObj
来存储转换后的键值对。通过循环遍历数组arr
,我们将每个键值对拆分为键和值,并检查jsonObj
中是否已存在相同的键。如果存在相同的键,则将新的值添加到已有的数组中;否则,直接将键值对添加到jsonObj
中。
对于这个问题,腾讯云没有特定的产品或链接与之相关。
领取专属 10元无门槛券
手把手带您无忧上云