Javascript 用于来回转换值的JS映射
我正试图找出最好的方法,将值作为一种翻译过程来回映射。用例必须将不利于SEO的属性代码处理成更好的格式,并在前端显示,但我还需要能够将nice属性标签处理回原始代码,以便在脚本中使用。在下面的示例中,我希望能够查找Javascript 用于来回转换值的JS映射,javascript,Javascript,我正试图找出最好的方法,将值作为一种翻译过程来回映射。用例必须将不利于SEO的属性代码处理成更好的格式,并在前端显示,但我还需要能够将nice属性标签处理回原始代码,以便在脚本中使用。在下面的示例中,我希望能够查找myMap,检查对象中是否存在字符串值,如果存在,则拉出相应的标签 var myString = 'color_attr_code'; // Want to be able to extract 'color' from the map var myA
myMap
,检查对象中是否存在字符串值,如果存在,则拉出相应的标签
var myString = 'color_attr_code'; // Want to be able to extract 'color' from the map
var myAltString = 'color'; // Want to be able to extract 'color_attr_code'
var myMap = {
'color_attr_code': 'color'
}
感谢您的帮助。您的思路是正确的,尽管在现代环境中,您可能使用
地图而不是对象,或者至少在没有原型的情况下创建对象,这样就不会在字符串
或值
或默认对象原型提供的其他内容上出现错误匹配
您将有两个地图,每个方向一个,可能最好从相同的源数据中导出:
const mappings = [
["color_attr_code", "color"],
["blah_attr_code", "blah"],
// ...
];
const attrToLabel = new Map(mappings);
const labelToAttr = new Map(mappings.map(([key, value]) => [value, key]));
然后使用attrtlabel.get(“color\u attr\u code”)
获取相应的标签,使用labelToAttr.get(“color”)
获取相应的代码
实例:
const映射=[
[“颜色属性代码”,“颜色”],
[“废话属性代码”,“废话”],
// ...
];
常量attrtlabel=新映射(映射);
const labelToAttr=新映射(mappings.Map([key,value])=>[value,key]);
log(`Label for“color\u attr\u code”:${attrtlabel.get(“color\u attr\u code”)}`);
log(`Code for“color”:${labelToAttr.get(“color”)}`)代码>那么,到底是什么阻止您将反向[key,value]对添加到myMap
(甚至添加到单独的对象中)?