如何使用Javascript在HashMap中查找基于不区分大小写键的值
我在下面的逻辑中传递了一个JSON对象和一个HashMap:-如何使用Javascript在HashMap中查找基于不区分大小写键的值,javascript,json,hashmap,Javascript,Json,Hashmap,我在下面的逻辑中传递了一个JSON对象和一个HashMap:- export const modifyKeys = (obj: { [x: string]: any; }, myMap: any) => { Object.keys(obj).forEach(key => { if (myMap !== undefined) { if (myMap.has(key)) { var fieldName = m
export const modifyKeys = (obj: { [x: string]: any; }, myMap: any) => {
Object.keys(obj).forEach(key => {
if (myMap !== undefined) {
if (myMap.has(key)) {
var fieldName = myMap.get(key);
//console.log('Field Name::', fieldName);
obj[fieldName] = obj[key];
delete obj[key];
if (typeof obj[fieldName] === "object") {
modifyKeys(obj[fieldName], myMap);
}
}else{
delete obj[key];
}
}
});
}
我的映射包含键值,在这个JSON对象中,我将查找与键值匹配的相应属性,并执行一些操作,如用HashMap的值替换该属性,如果没有找到匹配项,则从JSON对象中删除该属性本身。但是现在的问题是,密钥必须区分大小写,因为会跳过一些数据。我想在比赛中考虑这个案子不敏感。例如,对于像这样的JSON对象
{
firstName: 'Vinod',
LastName: 'Kumar'
}
{
f_name: 'Vinod',
LastName: 'Kumar'
}
使用包含键值的Map作为FirstName-f_name,匹配应该发生,最终的对象应该是这样的
{
firstName: 'Vinod',
LastName: 'Kumar'
}
{
f_name: 'Vinod',
LastName: 'Kumar'
}
任何建议,伙计们,谢谢,我必须在myMap中循环键。。。但是,如果你没有任何钥匙的唯一区别是大小写的话,下面的方法就行了。。。基本上只是使用.toLowerCase()创建了规范化键
export const modifyKeys=(obj:{[x:string]:any;},myMap:any)=>{
Object.keys(obj.forEach)(key=>{
var normalizedKey=key.toLowerCase();
if(myMap!==未定义){
var mapKeys=Object.keys(myMap);
var-keyFound=false;
对于(var index=0;index