使用字符串读取配置文件变量

时间:2019-01-26 08:27:28

标签: javascript node.js config-files

我有一个配置文件(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 <@ 386679122614681600>,因为该名称将会更改。

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

4 个答案:

答案 0 :(得分:-1)

您需要为此使用bracket notation

var countvalue = LEADERBOARD[usercount]

这是一个例子:

const foo = {
  bar123: 'baz'
}

const prop = 'bar' + 123
console.log(foo[prop])

答案 1 :(得分:-1)

使用[]表示法。

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

  

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

let obj = {
    "usercount<@386679122614681600>": 0
}

const count = `386679122614681600`;
const useCount = `usercount<@${count}>`;

console.log(obj[useCount])

答案 2 :(得分:-1)

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

const LEADERBOARD = {
    "usercount<@386679122614681600>": 0
}

// String you create
const userId = '386679122614681600'
const userCount = `usercount<@${userId}>`

console.log(LEADERBOARD[userCount]) // 0

答案 3 :(得分:-1)

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

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

check

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