无法在对象中获取值(Javascript)

时间:2018-03-02 12:19:49

标签: javascript object

window.addEventListener('keydown', (e) => {
    let arrowsObj = {
        "ArrowUp": 1,
        "ArrowDown": 2,
        "ArrowLeft": 3,
        "ArrowRight": 4
    }
    let eventKey = e.key;
    console.log(arrowsObj.eventKey);
});

上面的代码不起作用,所以我做了以下检查:

arrowsObj.hasOwnProperty(eventKey)

if(eventKey in arrowsObj)

两者都回归真实,我错过了什么?那是因为数据类型吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

在您的情况下,您不能使用.dot表示法来访问对象中的值,因为它不是字符串键,而是存储键的变量。

使用括号内容代替arrowsObj[eventKey]

我仍然建议您使用.hasOwnProperty,否则如果您按箭头键以外的其他键,则您的控制台中将显示未定义的内容。

window.addEventListener('keydown', (e) => {
    let arrowsObj = {
        "ArrowUp": 1,
        "ArrowDown": 2,
        "ArrowLeft": 3,
        "ArrowRight": 4
    }
    let eventKey = e.key;
    console.log(arrowsObj[eventKey]);
});

答案 1 :(得分:1)

使用括号表示法console.log(arrowsObj[eventKey]); intead dot