为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript-无法设置未定义的属性

JavaScript-无法设置未定义的属性

互换的青春 2019-10-25 14:56:57
我的代码:var a = "1",b = "hello",c = { "100" : "some important data" },d = {};d[a]["greeting"] = b;d[a]["data"] = c;console.debug (d);我收到以下错误:Uncaught TypeError:无法设置未定义的属性“ greeting”。我正在尝试做类似于关联数组的操作。为什么这不起作用?
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

您永远不会设置d[a]任何值。


因此,d[a]计算结果为undefined,而您无法在上设置属性undefined。


如果您添加d[a] = {}正确,d = {}事情应该会按预期进行。


另外,您可以使用对象初始化程序:


d[a] = {

    greetings: b,

    data: c

};

或者,您可以d在匿名函数实例中设置的所有属性:


d = new function () {

    this[a] = {

        greetings: b,

        data: c

    };

};

如果您所在的环境支持ES2015功能,则可以使用计算属性名称:


d = {

  [a]: {

    greetings: b,

    data: c

  }

};


查看完整回答
反对 回复 2019-10-25
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

存储在的对象d[a]尚未设置为任何对象。因此,d[a]计算为undefined。您不能将属性分配给undefined:)。您需要将一个对象或数组分配给d[a]:


d[a] = [];

d[a]["greeting"] = b;


console.debug(d);


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 1828 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信