【问题标题】:JavaScript: Use variable (argument) as propertyJavaScript:使用变量(参数)作为属性
【发布时间】:2020-06-03 04:41:26
【问题描述】:

我正在制作一个通过数据食物量来计算的函数。

const countFood = (foodType) => {
  let foodNeeded = 0;

  if (animal.food.type === foodType) {
    foodNeeded += +animal.food.amount;
  };

  const food = foodType;

  if (foodNeeded > (pavilion.food[food] - 1)) return true;

  countFood(foodType);
}

countFood('meat');

这是for循环中的一段代码。

我需要像pavilion.food.meat一样使用这个参数来请求它

【问题讨论】:

  • 没有正确理解。foodTypepavilion.food.meat 有什么关系? (pavilion.food->>[food]<<- - 1) 是什么意思?
  • 这能回答你的问题吗? Accessing property of object with variable
  • 只需删除->><<-,因为[food] 语法已经正确
  • 好的。正如所写的那样,毫无疑问,因为代码应该可以工作。除了您不小心自己回答的原始I need to use this argument 问题之外,您还有其他问题吗?
  • 它有效。谢谢大家!

标签: javascript function loops recursion


【解决方案1】:

您可以使用bracket notation 访问对象属性。

例子:

const pavillon = {
  food: {
    meat: 3
  }
}

function getFood(foodType) {
  const food = pavillon.food[foodType]
  
  console.log(food)
  
  return food
}

getFood('meat');

【讨论】:

    【解决方案2】:

    如果你有:

    {
      pavilion: {
        food: {
          meat: {...}
        }
      }
    }
    

    那么你可以使用pavilion.food['meat']来引用内部对象。

    更一般地说,pavilion.food[foodType]

    【讨论】:

      猜你喜欢
      • 2019-12-21
      • 2017-04-12
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      相关资源
      最近更新 更多