我有一个地图对象,我想从地图对象中获取特定键的值(它本身的键的值) 假设我们要获得“正确”
我们可以通过以下方法获取“正确”键的值:
question.get('correct') // return 3
但是我想要 :
someCode //return 'correct'
const question = new Map();
question.set('question','What is the latest version of javasript ?')
question.set(1,'es4')
question.set(2,'es5')
question.set(3,'es6')
question.set('correct',3)
question.set(true , 'correct Answer');
question.set(false , 'wrong Answer')
答案 0 :(得分:0)
如果您的用例仅是测试密钥的存在,则只需使用has
,但是如果您希望在密钥还存在其他值的情况下找回密钥,则可以使用has
进行测试键是否存在,这里的getKey
函数检查键是否在Map上返回该键,否则返回Not found
const question = new Map();
question.set('question','What is the latest version of javasript ?')
question.set(1,'es4')
question.set(2,'es5')
question.set(3,'es6')
question.set('correct',3)
question.set(true , 'correct Answer');
question.set(false , 'wrong Answer')
let getKey = key => question.has(key) ? key : 'Not found'
console.log(getKey('correct'))
console.log(getKey('randome key'))
您甚至可以使用[...Map.keys()]
来获取键数组,然后进行迭代并查找是否找到了值
答案 1 :(得分:0)
要获取基于值的键,您可以使用Map.entries()遍历地图条目,并在找到键后返回键。
const question = new Map();
question.set('question','What is the latest version of javasript ?');
question.set(1,'es4');
question.set(2,'es5');
question.set(3,'es6');
question.set('correct',3);
question.set(true , 'correct Answer');
question.set(false , 'wrong Answer');
function getKey(map, input) {
for (let [key, value] of map.entries()) {
if (value === input) {
return key;
}
}
return "Not found";
}
console.log(getKey(question, 3));
console.log(getKey(question, 2));
答案 2 :(得分:0)
您可以按以下方式获取键的值,这将获取地图对象的所有键:
question.keys();