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ѕѕаа的答案很简单,我支持你的答案:)