Использовать строку для чтения переменной файла конфигурации - PullRequest
0 голосов
/ 26 января 2019

У меня есть файл конфигурации (leaderboard.json), который выглядит следующим образом:

{
    "usercount<@386679122614681600>": 0
}

Я пытаюсь прочитать значение этой переменной (так было бы 0) в моем файле index.jsчто выглядит следующим образом:

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

По сути, я хочу, чтобы countvalue вернул 0, но я не могу просто использовать LEADERBOARD.usercount <@ 386679122614681600>, так как это имя будет меняться.

По сути,Мне интересно, есть ли обходной путь, где я могу прочитать переменную моего файла конфигурации, используя строку, которую я создаю.

Ответы [ 4 ]

0 голосов
/ 26 января 2019

Этот ответ поможет вам, если вы знаете, что у вас есть доступ только к первому элементу! Больше информации об этом нет, поэтому я предполагаю, что это потенциальный ответ:

Вы можете использовать Object.keys, чтобы перевести значение в формат массива, а затем получить доступ к первому значению с помощью [0], и оно вернет значение 0.

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

var countvalue = obj[Object.keys(obj)[0]];

console.log(countvalue)

Я действительно надеюсь, что это поможет. Пожалуйста, дайте мне знать, если это не было вашим требованием.

0 голосов
/ 26 января 2019

Используйте [] нотацию.

, поскольку для . свойство нотации должно быть действительным идентификатором JS Читать здесь .

свойство должно бытьдопустимый идентификатор JavaScript, т. е. последовательность буквенно-цифровых символов, включая знак подчеркивания ("_") и знак доллара ("$"), которые не могут начинаться с цифры.Например, объект. $ 1 действителен, а объект.1 - нет.

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

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

console.log(obj[useCount])
0 голосов
/ 26 января 2019

Используя строку , которую вы создаете , вы можете вернуть значение учетной записи пользователя.

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

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

console.log(LEADERBOARD[userCount]) // 0
0 голосов
/ 26 января 2019

Для этого вам нужно использовать обозначение в скобках .

var countvalue = LEADERBOARD[usercount]

Вот пример:

const foo = {
  bar123: 'baz'
}

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