You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将变量值传入JavaScript字典?赋值失败问题求助

解决方法

问题出在你创建对象时的键名写法——直接写thisUser:会把它当作固定字符串键,而非变量的值。要实现用变量作为对象键,需要使用方括号语法,具体修改如下:

修改后的代码

var x;
var newArray = []; // 假设你已声明该数组

for (var x = 0; x < users['suggestions'].length; x++) {
    var thisUser = users['suggestions'][x].username;
    // 用方括号包裹变量,将其值作为键名
    var User = {
        [thisUser]: {
            'user': users['suggestions'][x].username,
            'bio': users['suggestions'][x].bio,
            'id': users['suggestions'][x].id,
        }
    };
    newArray.push(User); 
}

原写法无效的原因

  • 普通对象字面量中,key: value的key会被解析为字符串,所以thisUser:最终生成的是键名为"thisUser"的属性。
  • 你尝试的${thisUser}是模板字符串,本质仍是字符串,同样会被当作固定键名,无法解析变量值。

可选优化写法

也可以先创建空对象,再动态添加属性,效果一致:

var User = {};
User[thisUser] = {
    'user': users['suggestions'][x].username,
    'bio': users['suggestions'][x].bio,
    'id': users['suggestions'][x].id,
};

修改后运行结果会符合你的预期:

{
    "John": {
        "user": "John",
        "bio": "Hello, im new!",
        "id": 23
    }
}

内容的提问来源于stack exchange,提问作者greensky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:03:53