【问题标题】:Use String to Read Config File Variable使用字符串读取配置文件变量
【发布时间】:2019-06-19 23:15:44
【问题描述】:

我有一个如下所示的配置文件 (leaderboard.json):

{
    "usercount<@386679122614681600>": 0
}

我正在尝试在我的 index.js 文件中读取该变量的值(因此它将为 0),如下所示:

var LEADERBOARD = require('./leaderboard.json');
const usercount = 'usercount'+user
var countvalue = LEADERBOARD.usercount
console.log(countvalue)

我本质上希望 countvalue 返回 0,但我不能简单地使用 LEADERBOARD.usercount,因为该名称会发生​​变化。

基本上,我想知道是否有一种解决方法可以使用我创建的字符串读取我的配置文件变量。

【问题讨论】:

    标签: javascript node.js config-files


    【解决方案1】:

    使用您创建的字符串,您可以返回用户帐户的值。

    const LEADERBOARD = {
        "usercount<@386679122614681600>": 0
    }
    
    // String you create
    const userId = '386679122614681600'
    const userCount = `usercount<@${userId}>`
    
    console.log(LEADERBOARD[userCount]) // 0
    

    【讨论】:

      【解决方案2】:

      如果您知道您只访问第一个元素,此答案将对您有所帮助!没有更多信息,所以我认为这是一个潜在的答案:

      您可以使用 Object.keys 将值放入数组格式,然后用 [0] 访问第一个值,它将返回 0 值。

      var obj = {
          "usercount<@386679122614681600>": 0
      }
      
      var countvalue = obj[Object.keys(obj)[0]];
      
      console.log(countvalue)

      我真的希望这会有所帮助。如果这不是您的要求,请告诉我。

      【讨论】:

        【解决方案3】:

        使用[] 表示法。

        因为. 表示法属性必须是有效的JS 标识符Read here

        属性必须是有效的 JavaScript 标识符,即不能以数字开头的字母数字字符序列,还包括下划线 ("_") 和美元符号 ("$")。例如,object.$1 有效,而 object.1 无效。

        let obj = {
            "usercount<@386679122614681600>": 0
        }
        
        const count = `386679122614681600`;
        const useCount = `usercount<@${count}>`;
        
        console.log(obj[useCount])

        【讨论】:

          【解决方案4】:

          您需要为此使用bracket notation

          var countvalue = LEADERBOARD[usercount]

          这是一个例子:

          const foo = {
            bar123: 'baz'
          }
          
          const prop = 'bar' + 123
          console.log(foo[prop])

          【讨论】:

            猜你喜欢
            • 2013-07-15
            • 2017-04-10
            • 1970-01-01
            • 1970-01-01
            • 2016-11-19
            • 1970-01-01
            • 2020-09-04
            • 2011-02-11
            相关资源
            最近更新 更多