如何在javascript中从另一个对象创建自定义对象
我试图从另一个对象创建自定义对象,但我想使其成为动态对象 我有一个目标如下如何在javascript中从另一个对象创建自定义对象,javascript,Javascript,我试图从另一个对象创建自定义对象,但我想使其成为动态对象 我有一个目标如下 { docType: "Produce", PRODUCEID: "PRFAINAPCH0005", PRODUCE: "Sweetcorn", PRODUCEQUANTITES: [{ name: "Madhuri", qty: 4000 }], FARMLOC
{
docType: "Produce",
PRODUCEID: "PRFAINAPCH0005",
PRODUCE: "Sweetcorn",
PRODUCEQUANTITES: [{
name: "Madhuri",
qty: 4000
}],
FARMLOCATION: "Plot 56",
PLANTINGDATE: "2020-10-01T04:00:00.000Z",
GAPINFO: {},
FARMERID: "FAINAPCH0001",
STATUS: "Approved",
BASE_UNIT: "kg",
SELECTED_UNIT: {
NAME: "kg"
},
}
我想做另一个像下面这样的物体
{
BusinessData: {
PRODUCEQUANTITES: [{
name: "Madhuri",
qty: 4000
}],
FARMLOCATION: "Plot 56",
GAPINFO: {},
PLANTINGDATE: "2020-10-01T04:00:00.000Z",
BASE_UNIT: "kg",
SELECTED_UNIT: {
NAME: "kg"
},
FARMERID: "FAINAPCH0001"
},
PRID: "PRFAINAPCH0005",
docType: "Produce",
PRODUCE: "Sweetcorn",
STATUS: "Approved"
}
在该对象中,除了“PRODUCEID”、“product”、“docType”和“STATUS”之外,所有属性都将进入“BusinessData”属性中,该属性是主对象中的对象
我尝试使用下面的代码,这不是一个很好的方法,因为它使代码成为静态的,我想使它成为动态的,除了“PRODUCEID”、“product”、“docType”和“STATUS”所有属性都在“BusinessData”属性内。
提前谢谢
var myparam = {
"BusinessData": {}
};
myparam.PRID = param.PRODUCEID
myparam.docType = param.docType
myparam.PRODUCE = param.PRODUCE
myparam.STATUS = param.STATUS
myparam.BusinessData.PRODUCEQUANTITES = param.PRODUCEQUANTITES
myparam.BusinessData.FARMLOCATION = param.FARMLOCATION
myparam.BusinessData.GAPINFO = param.GAPINFO
myparam.BusinessData.PLANTINGDATE = param.PLANTINGDATE
myparam.BusinessData.BASE_UNIT = param.BASE_UNIT
myparam.BusinessData.SELECTED_UNIT = param.SELECTED_UNIT
myparam.BusinessData.FARMERID = param.FARMERID
console.log("myparam", myparam);
创建包含特殊属性的映射对象,然后循环键:
函数转换对象(obj){
常量映射={
PRODUCEID:“PRID”,
docType:“docType”,
生产:“生产”,
状态:“状态”
};
const ret={BusinessData:{}};
用于(obj中的常量键){
if(输入映射){
ret[mappings[key]=obj[key];
}否则{
ret.BusinessData[key]=obj[key];
}
}
返回ret;
}
这利用了一个循环。创建一个包含特殊属性的映射对象,然后循环键:
函数转换对象(obj){
常量映射={
PRODUCEID:“PRID”,
docType:“docType”,
生产:“生产”,
状态:“状态”
};
const ret={BusinessData:{}};
用于(obj中的常量键){
if(输入映射){
ret[mappings[key]=obj[key];
}否则{
ret.BusinessData[key]=obj[key];
}
}
返回ret;
}
这利用了一个循环。您可以对对象进行分解和重构。rest语法将处理其他项目
const对象={
docType:“生产”,
PRODUCEID:“PRFAINAPCH0005”,
生产:“甜玉米”,
产品数量:[{
姓名:“Madhuri”,
数量:4000
}],
农场位置:“56号地块”,
种植日期:“2020-10-01T04:00:00.000Z”,
加平福:{},
法梅里德:“FAINAPCH0001”,
状态:“已批准”,
基本单位:“千克”,
所选单位:{
名称:“kg”
},
}
常数变化=({
生产商,
docType,
生产,,
地位
…BusinessData/`…`收集所有其他信息
}) => ({
PRID:PRODUCEID,//将PRODUCEID重命名为PRID
docType,
生产,,
地位
业务数据
})
log(更改(对象))
您可以分解和重构对象。rest语法将处理其他项目
const对象={
docType:“生产”,
PRODUCEID:“PRFAINAPCH0005”,
生产:“甜玉米”,
产品数量:[{
姓名:“Madhuri”,
数量:4000
}],
农场位置:“56号地块”,
种植日期:“2020-10-01T04:00:00.000Z”,
加平福:{},
法梅里德:“FAINAPCH0001”,
状态:“已批准”,
基本单位:“千克”,
所选单位:{
名称:“kg”
},
}
常数变化=({
生产商,
docType,
生产,,
地位
…BusinessData/`…`收集所有其他信息
}) => ({
PRID:PRODUCEID,//将PRODUCEID重命名为PRID
docType,
生产,,
地位
业务数据
})
console.log(更改(对象))