如何将字符串转换为变量

时间:2019-08-22 21:47:17

标签: javascript node.js string variables

我正在尝试将命令用于聊天程序,我想使用!editvar variablehere value这样的命令来编辑变量 因此,如果它的variablehere ='123'我想将'123'变成123,或者像'hello'变成hello,用简单的话说,我试图将聊天消息中的字符串变成变量名

ive尝试了解析和string.raw,但没有成功

if(message.startsWith('keyeditvar')) {
        console.log(message)
                var bananasplit = message.split(' ');
                var bananasplitted = json.parse(bananasplit)
                console.log(bananasplitted[0].keyeditvar)
            var variable = bananasplit[1]
            console.log(variable)
            var value = bananasplit[2]
            console.log(value)
            var variable2 = String.raw(variable)
            console.log(variable2)
            var value2 = String.raw(value)
            console.log(value2)
        }

我希望它能正常工作

2 个答案:

答案 0 :(得分:1)

  

im试图将字符串转换为变量名

在Javascript中,通常不会在当前范围内使用自定义名称动态定义新变量。虽然可以在全局范围内执行此操作,但如果不使用通常不建议使用的工具(例如eval()),就无法在函数或块范围内轻松进行此操作。

相反,您使用一个对象,然后在该对象上创建属性。您可以使用常规对象和常规属性,也可以使用具有某些附加功能的Map对象。

对于常规对象,您可以执行以下操作:

// define base object
let base = {};

// define two variables that contain variable name and value
let someName = "greeting";
let someValue = "hello";

// store those as a property on our base object
base[someName] = someValue;
console.log(base);       // {greeting: "hello"}

然后,您可以更改值:

someValue = "goodbye";
base[someName] = someValue;
console.log(base);       // {greeting: "goodbye"}

或者,您可以添加另一个:

let someOtherName = "salutation";
let someOtherValue = "Dear Mr. Green";

base[someOtherName] = someOtherValue;
console.log(base);             // {greeting: "goodbye", salutation: "Dear Mr. Green"}
console.log(base.greeting)     // "goodbye"
console.log(base[someName]);   // "goodbye"
console.log(base.salutation)   // "Dear Mr. Green"
console.log(Object.keys(base)) // ["greeting", "salutation"]

您可以将Javascript对象视为一组键/值对。 “键”是属性名称,值是值。您可以使用以下命令获取键数组:

Object.keys(obj)

您可以通过以下方式设置键/值对:

obj[key] = value;

您可以通过以下方式获得键的值:

console.log(obj[key]);

您可以通过以下方式删除键/值对:

delete obj[key]

对于像这样的普通Javascript对象,键必须全部为字符串(或容易转换为字符串)。

如果您有非字符串键,则可以使用Map object,因为它将任何对象或原始值作为键,但是它使用get()set()方法进行设置并获取键/值,而不是简单对象的分配方案。

答案 1 :(得分:0)

请下次再输入一个干净的代码...

将字符串转换为数字。您可以使用以下函数:Number(object)

例如:

Number('123')

将返回123。

如果对象值不是正确的数字,它将返回NaN。

例如:

Number('hello')

将返回NaN。