gpt4 book ai didi

javascript - 将对象值更改为匹配的映射值

转载 作者:行者123 更新时间:2023-12-04 09:15:31 26 4
gpt4 key购买 nike

我有一个看起来像这样的对象

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',
}
我正在尝试使用 sizeMap 更改对象内部的属性之一
我要 companyObj看起来像这样
{Org_Size_Facing: '1-3'} // I don't really care about the other properties at this point..
基本上如果 companyObj.Org_Size_Facing返回 sizeMap 中的任何字段 sizeMap然后应该返回适​​当的值
我试过了
console.log(
'objAsign',
Object.assign(companyObj.Org_Size_Facing, sizeMap['Org_Size_Facing']),
)
这有点远,但我相信你们已经明白了
非常感谢你们能提供的任何帮助

最佳答案

您可以遍历 companyObj 的条目(键、值对)并使用 in operator检查属性是否在 sizeMap对象(注意它也在原型(prototype)链中)。
如果你只需要至少一个属性,那么你可以早点休息。
运行示例

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',
}

for (const [key, val] of Object.entries(companyObj)) {
if (val in sizeMap) {
companyObj[key] = sizeMap[val];
break; // if we dont need to check other properties
}
}

console.log(companyObj)

请注意,我们正在修改原始对象,如果需要,我们也可以创建一个新对象。

关于javascript - 将对象值更改为匹配的映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63240845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com