Javascript 将对象值更改为匹配的映射值
我有一个像这样的物体Javascript 将对象值更改为匹配的映射值,javascript,oop,object,ecmascript-6,Javascript,Oop,Object,Ecmascript 6,我有一个像这样的物体 const companyObj = { Advice_Charge: "B. In service / product cost" Org_Advisory: "B. 1-3" Org_Developers: "A. None" Org_MainCategory: "Business services and sales"
const companyObj =
{
Advice_Charge: "B. In service / product cost"
Org_Advisory: "B. 1-3"
Org_Developers: "A. None"
Org_MainCategory: "Business services and sales"
Org_Name: "A1 Orchard Spreading"
Org_Size_Facing: "B. 1-3"
Org_SubCategory: "Contractor - Harvesting and cultivation"
}
const sizeMap = {
'A. None': '11-30',
'B. 1-3': '1-3',
'C. 4-10': '4-10',
'D. 11 - 30': '11-30',
'E. 31 - 100': '31-100',
'F. 100 - 300': '100-300',
'G. 301 - 1000': '301-1000',
'H. 1,000+': '1000 +',
'J. ???': '1-3',
}
{Org_Size_Facing: '1-3'} // I don't really care about the other properties at this point..
我还有一个物体看起来像这样
const companyObj =
{
Advice_Charge: "B. In service / product cost"
Org_Advisory: "B. 1-3"
Org_Developers: "A. None"
Org_MainCategory: "Business services and sales"
Org_Name: "A1 Orchard Spreading"
Org_Size_Facing: "B. 1-3"
Org_SubCategory: "Contractor - Harvesting and cultivation"
}
const sizeMap = {
'A. None': '11-30',
'B. 1-3': '1-3',
'C. 4-10': '4-10',
'D. 11 - 30': '11-30',
'E. 31 - 100': '31-100',
'F. 100 - 300': '100-300',
'G. 301 - 1000': '301-1000',
'H. 1,000+': '1000 +',
'J. ???': '1-3',
}
{Org_Size_Facing: '1-3'} // I don't really care about the other properties at this point..
我试图使用sizeMap更改对象内部的一个属性
我想让companyObj看起来像这样
const companyObj =
{
Advice_Charge: "B. In service / product cost"
Org_Advisory: "B. 1-3"
Org_Developers: "A. None"
Org_MainCategory: "Business services and sales"
Org_Name: "A1 Orchard Spreading"
Org_Size_Facing: "B. 1-3"
Org_SubCategory: "Contractor - Harvesting and cultivation"
}
const sizeMap = {
'A. None': '11-30',
'B. 1-3': '1-3',
'C. 4-10': '4-10',
'D. 11 - 30': '11-30',
'E. 31 - 100': '31-100',
'F. 100 - 300': '100-300',
'G. 301 - 1000': '301-1000',
'H. 1,000+': '1000 +',
'J. ???': '1-3',
}
{Org_Size_Facing: '1-3'} // I don't really care about the other properties at this point..
基本上,如果companyObj.Org\u Size\u-face
返回sizeMap
sizeMap
中的任何字段,则应返回适当的值
我试过了
console.log(
'objAsign',
Object.assign(companyObj.Org_Size_Facing, sizeMap['Org_Size_Facing']),
)
这太离谱了,但我相信你们都明白了
如果您想覆盖原始对象,请执行以下操作,我们将非常感谢您提供的任何帮助:
if(sizeMap.hasOwnProperty(companyObj.Org\u Size\u-face)){
companyObj.Org\u Size\u face=sizeMap[companyObj.Org\u Size\u face]
}
您可以循环查看companyObj
的条目(键对、值对),并使用检查属性是否在sizeMap
对象中(请注意,它看起来也在原型链中)
如果你只需要至少一处房产,那么你可以早点休息
运行示例
const companyObj={
建议费用:“B.服务/产品成本”,
组织咨询:“B.1-3”,
组织开发者:“无”,
组织单元主分类:“业务服务和销售”,
组织名称:“A1果园扩展”,
组织大小面向:“B.1-3”,
组织单位子类别:“承包商-收获和栽培”,
}
常量大小映射={
“A.无”:“11-30”,
“B.1-3”:“1-3”,
“C.4-10”:“4-10”,
“D.11-30”:“11-30”,
‘E.31-100’:‘31-100’,
“F.100-300”:“100-300”,
“G.301-1000”:“301-1000”,
“H.1000+”:“1000+”,
‘J.???’:‘1-3’,
}
for(Object.entries(companyObj))的常量[key,val]{
if(尺寸映射中的val){
companyObj[key]=sizeMap[val];
break;//如果不需要检查其他属性
}
}
console.log(companyObj)
您可以使用..的来完成它。。在
循环中
const companyObj={
建议费用:“B.服务/产品成本”,
组织咨询:“B.1-3”,
组织开发者:“无”,
组织单元主分类:“业务服务和销售”,
组织名称:“A1果园扩展”,
组织大小面向:“B.1-3”,
组织单位子类别:“承包商-收获和栽培”
}
常量大小映射={
“A.无”:“11-30”,
“B.1-3”:“1-3”,
“C.4-10”:“4-10”,
“D.11-30”:“11-30”,
‘E.31-100’:‘31-100’,
“F.100-300”:“100-300”,
“G.301-1000”:“301-1000”,
“H.1000+”:“1000+”,
‘J.???’:‘1-3’,
}
for(让我们输入companyObj){
if(尺寸映射中的companyObj[key]{
设val=companyObj[key];
companyObj[key]=sizeMap[val];
}
}
console.log(companyObj)代码>