我正在尝试将命令用于聊天程序,我想使用!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)
}
我希望它能正常工作
答案 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。