【问题标题】:Calling an object that's in an object调用对象中的对象
【发布时间】:2016-11-29 17:03:20
【问题描述】:

我正在开发一款需要随机方向的游戏;向左、向右、向上或向下。根据某些变量,选择任何特定方向的机会会发生变化。我的第一个想法是制作一个具有不同类型方向机会的对象:

  • L 型:左 70%,右 10%,上 10%,下 10%
  • R 型:左 10%,右 70%,上 10%,下 10%
  • U 型:左 10%,右 10%,上 70%,下 10%
  • D 型:左 10%,右 10%,上 10%,下 70%

我做这个的第一个想法是制作一个包含所有方向类型的对象,并且每个类型都是一个对象。

var directions = {
            L: {Left: 70, Right: 10, Up: 10, Down: 10},
            R: {Left: 10, Right: 70, Up: 10, Down: 10},
            U: {Left: 10, Right: 10, Up: 70, Down: 10},
            D: {Left: 10, Right: 10, Up: 10, Down: 70}};

其中每个数字是该方向被调用的机会。我试图调用 L 型的机会,通过使用:

console.log(directions.L.Left);

但它没有用。如果有更好的方法可以做到这一点或者可以以任何方式提供帮助,请告诉我。谢谢。

【问题讨论】:

  • 您的意思是directions.L.Left 还是directions.L.left
  • 设为大写 ​​L

标签: javascript object


【解决方案1】:

Javascript 区分大小写。您的代码可以使用正确的大小写

console.log(directions.L.Left); // note L in Left

以下示例

var directions = {
            L: {Left: 70, Right: 10, Up: 10, Down: 10},
            R: {Left: 10, Right: 70, Up: 10, Down: 10},
            U: {Left: 10, Right: 10, Up: 70, Down: 10},
            D: {Left: 10, Right: 10, Up: 10, Down: 70}};

console.log(directions.L.Left);

忠告 - 使用小数表示百分比(即 0.7 表示 70%) - 当您以后不需要不断记住是否将变量除以 100 时,这将使您的代码更加简单。

【讨论】:

  • 感谢有关百分比的建议,我意识到在代码中调用函数时我拼错了“方向”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2016-10-11
  • 1970-01-01
  • 2020-08-14
  • 2013-11-30
  • 1970-01-01
相关资源
最近更新 更多