将JavaScript数组转换为对象
我有一个奇怪的需求,需要将一个有效的javascript数组转换成另一个javascript对象 我得到的是这种格式的服务器响应将JavaScript数组转换为对象,javascript,arrays,object,Javascript,Arrays,Object,我有一个奇怪的需求,需要将一个有效的javascript数组转换成另一个javascript对象 我得到的是这种格式的服务器响应 { "buyerPrimary.firstName":["The buyer primary.first name field is required."], "buyerPrimary.lastName":["The buyer primary.last name field is required."] } 我希望将此数组更改为此格式 { "buyerP
{
"buyerPrimary.firstName":["The buyer primary.first name field is required."],
"buyerPrimary.lastName":["The buyer primary.last name field is required."]
}
我希望将此数组更改为此格式
{
"buyerPrimary":{
"firstName":["The buyer primary.first name field is required."],
"lastName":["The buyer primary.last name field is required."]
}
}
我仍然在JavaScript中苦苦挣扎,经过数小时的搜索和尝试,我一直没有成功。非常感谢您的帮助。只需使用操作符
[…]
即可获取对象属性
var sourceObject = {
"buyerPrimary.firstName":["The buyer primary.first name field is required."],
"buyerPrimary.lastName":["The buyer primary.last name field is required."]
};
var destinationObject = {
"buyerPrimary":{
"firstName":sourceObject["buyerPrimary.firstName"],
"lastName":sourceObject["buyerPrimary.lastName"]
}
};
您拥有的是一个对象,而不是数组 您可以使用来获取对象自身属性名称的数组,然后使用来迭代该数组以创建新对象。下面的代码应该有足够的注释,如果没有,请提问
var数据={
“buyerPrimary.firstName”:[“需要买方primary.firstName字段。”],
“buyerPrimary.lastName”:[“需要买方primary.lastName字段。”]
}
var res=Object.keys(数据).reduce(函数(obj,key,idx){
//将键拆分为属性名称
var props=key.split('.');
//如果累加器对象还没有合适的属性,
//创造它
如果(!obj.hasOwnProperty(props[0])){
obj[props[0]]={};
}
//添加属性和值
obj[props[0]][props[1]]=数据[key];
//返回累加器对象以继续收集属性
返回obj;
//使用空对象作为累加器初始化
}, {});
//显示结果
document.write(JSON.stringify(res))代码>如果您发布到目前为止尝试过的内容,则更有可能获得帮助。您的对象不是数组。数组由[…]
定义。对象由{…}