【问题标题】:javascript looping over data and recreating a data structure [duplicate]javascript循环数据并重新创建数据结构[重复]
【发布时间】:2021-12-30 17:11:15
【问题描述】:

如果我有这样的数据:

{
"zone_temps" : {
   "VAV1": "read 12345:2 analogInput 2",
   "VAV2": "read 12345:2 analogInput 1",
   "VAV3": "read 12345:2 analogInput 1",
   "VAV4": "read 12345:2 analogInput 2",
   "VAV5": "read 12345:2 analogInput 1",
   "VAV6": "read 12345:2 analogInput 2",
   "VAV7": "read 12345:2 analogInput 1",   
   "VAV8": "read 12345:2 analogInput 1",   
   "VAV9": "read 12345:2 analogInput 2",   
   "VAV10": "read 12345:2 analogInput 1"}
}

谁能给我一个提示,JavaScript 函数会是什么样子循环数据并使用相同的键重新创建数据结构,但值将是由 math.random() 制成的整数

希望这是有道理的,寻找这样的最终输出:

{
"zone_temps" : {
   "VAV1": "66",
   "VAV2": "88",
   "VAV3": "55",
   "VAV4": "66",
   "VAV5": "77",
   "VAV6": "67",
   "VAV7": "79",   
   "VAV8": "87",   
   "VAV9": "75",   
   "VAV10": "71"}
}

【问题讨论】:

    标签: javascript


    【解决方案1】:

    问题中的英文几乎是 JS 中的答案:循环键 (map()) 生成具有随机 (Math.random()) 值的键值对。 Object.fromEntries() 将这些对组合成一个新对象

    const temps = {
      "VAV1": "read 12345:2 analogInput 2",
      "VAV2": "read 12345:2 analogInput 1",
      "VAV3": "read 12345:2 analogInput 1",
      "VAV4": "read 12345:2 analogInput 2",
      "VAV5": "read 12345:2 analogInput 1",
      "VAV6": "read 12345:2 analogInput 2",
      "VAV7": "read 12345:2 analogInput 1",
      "VAV8": "read 12345:2 analogInput 1",
      "VAV9": "read 12345:2 analogInput 2",
      "VAV10": "read 12345:2 analogInput 1"
    }
    
    const result = Object.fromEntries(Object.keys(temps).map(key => {
      return [ key, Math.round(Math.random()*100) ]
    }))
    
    console.log(result)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多