Javascript 如何根据数组名获取键值?

Javascript 如何根据数组名获取键值?,javascript,reactjs,Javascript,Reactjs,我有一个包含英语键和阿拉伯语值的对象 我想检查这些值是否=阿拉伯值 还他的钥匙 样品 反对 service: { Plumber: 'سباكة', Electricity: 'الكهرباء', Dyeing: 'دهانات', Satellite: 'تلفاز ستالايت', Cleaning: 'التنظيف', Air: 'المكيفات', }, 阵列 ['التنظيف','سباكة'] 所以调用helper函数

我有一个包含英语键和阿拉伯语值的对象

我想检查这些值是否=阿拉伯值 还他的钥匙

样品

反对

service: {
    Plumber: 'سباكة',
    Electricity: 'الكهرباء',
    Dyeing: 'دهانات',
    Satellite: 'تلفاز ستالايت',
    Cleaning: 'التنظيف',
    Air: 'المكيفات',
  },
阵列

['التنظيف','سباكة']
所以调用helper函数后,我得出的结果应该是

['Plumber','Cleaning'] // in english
这是我尝试过的帮助函数

_getKeyByValue = (object, arr) => {
    console.log('engKeys', Object.keys(object)); // eng keys
    let name = arr.map(item => item); // "arr values"
    return Object.keys(object).find(key => object[key] === name);
  };
我是这样称呼你的

 let serv = this._getKeyByValue(englishObject, arrabicArray);
 console.log(serv);

但它不起作用,它返回未定义的

您可以减少对象的条目,下面是一个示例:

const服务={
水管工:“سب㶉㶡”,
电力:“电力”,
染色:“ده㶌㶎”,
卫星:“卫星”,
清洁:“التنظيف”,
空气:“الكفات”,
};
const arr=[“اتتت䃢ف”、“㶫㶕㶡”];
const result=Object.entries(service).reduce((a,[key,value])=>{
如果(包括(价值)){
a、 按键;
}
返回a;
}, []);

控制台日志(结果)您的代码无法工作,因为:

let name = arr.map(item => item);
返回数组和内部

.find(key => object[key] === name);
您试图将字符串与始终为false的数组进行比较

另外,您正在使用方法,该方法仅返回所提供数组中第一个元素的值。您需要使用方法来返回基于
arrabicArray
的所有匹配项

工作演示:

const englishObject={
水管工:“سب㶉㶡”,
电力:“电力”,
染色:“ده㶌㶎”,
卫星:“卫星”,
清洁:“التنظيف”,
空气:“الكفات”,
};
常量数组=[“数组”]、“数组”];
const_getKeyByValue=(对象,arr)=>{
返回Object.keys(Object.filter)(key=>arr.includes(Object[key]));
};
让serv=_getKeyByValue(englishObject,arrabicArray);
console.log(serv);

//['Plumber','Cleaning']//用英语
你在两种语言之间翻译吗?如果是,改变方法。@mehta rohan为什么?我只是翻译以保存数据库中的英语值!任何提示?什么是完整的用例?@mehta rohan我只是有一个下拉菜单用户从中选择服务“它以阿拉伯语显示”,在选择他的服务后,它应该保存在数据库中,所以我只想将其翻译成英语我不明白你的确切意思,但我与firebase DB合作,在用户节点中,我会像Thank you@Titus一样保存它,这也很有效,但palaѕѕаа的答案很简单,我支持你的答案:)