【问题标题】:dynamic variables from JSON object or strings in JavaScript来自 JSON 对象的动态变量或 JavaScript 中的字符串
【发布时间】:2018-04-05 05:52:24
【问题描述】:

我有一个联网应用程序,它通过将一组浮点数推送到客户端来实时更新多个参数。我希望能够在每次启动服务器时轻松修改浮点数组到客户端脚本中预先存在的变量的映射(例如通过更改 JSON 文件)

在连接到服务器时,客户端会收到一个参数列表:

["delayTime", "feedbackAmount", "backgroundColor"]

未来的消息:

[0.01, 0.4, 0.9]

使同名变量相等:

delayTime = 0.01;
feedbackAmount = 0.4;
backgroundColor = 0.9;

我是否可以将这些字符串/对象键转换为它们的关联变量,并让相应的浮点数组更新它们而不在每条消息上指定目标(因为不断变化的浮点数以服务器发送它们的速度通过)?以此类推……如果只是两个数组的对应值:

for (int i = 0; i < floatArray.length; i++){
     variable[i] = floatArray[i]
}

但是 variable[i] 的值正在更新我已经初始化的关联变量。

我希望这是有道理的;我想不通,但它似乎应该相当简单。

【问题讨论】:

  • @DarshanDave 我有点想做相反的事情——将字符串转换为变量(或者更确切地说,使用它们与客户端脚本中的现有变量相关联)
  • 好的,这意味着您将 {key:value} 作为字符串,并且您需要将其作为正确的变量
  • 你可以通过 Json.Parse 完成

标签: javascript json server dynamic-variables


【解决方案1】:

不要那样做,创建另一个包含如下对象的数组。

[
    {
        "key": "delayTime",
        "value": 0.01
    },
    {
        "key": "feedbackAmount",
        "value": 0.4
    },
    {
        "key": "backgroundColor",
        "value": 0.9
    }
]

映射两个数组

let a = ["delayTime", "feedbackAmount", "backgroundColor"];
let b = [0.01, 0.4, 0.9];
let tempArray;
tempArray = a.map(function (x, i) {
    return {"key": x, "value": b[i]}        
}.bind(this));
console.log(tempArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2021-08-26
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多