javascript - 无法获取对象中的值(Javascript)

标签 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)

两者都返回 true,我错过了什么?这是因为数据类型吗?

谢谢!

最佳答案

在您的情况下,您不能使用 .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]);
});

关于javascript - 无法获取对象中的值(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49069029/

相关文章:

javascript - querySelectorAll 不适用于伪类 nth-last-child

r - 访问 R 中对象中的列表(轮廓函数)

javascript - 从数组对象索引中获取与用户单击的相册名称相对应的图像

javascript - 如何使用 for in 循环遍历仅打印第二个属性的对象?

javascript - 加载时的 jQuery SlideDown

javascript - jquery 动画回调 - 如何将参数传递给回调

javascript - 使用 "this"或 "window"调度自定义事件?

Javascript 在函数内部使对象字面量等于 {},

c# - 在多个函数之间使用对象

javascript - Angular Js ng-repeat无法使用ajax从json数组获取输出