【问题标题】:How To Create Associative Array In EcmaScript [duplicate]如何在 EcmaScript 中创建关联数组
【发布时间】:2017-04-05 03:13:15
【问题描述】:

我想在构造函数中创建一个关联数组。但是下面的代码会引发错误。未捕获的类型错误:无法设置未定义的属性“num”

class Validate{

    constructor(){

        this.name['num'] = ['one','two'];
    }
    display() {




        console.log(this.name['num']);
    }



}

【问题讨论】:

  • 您首先必须将this.name 定义为something
  • @Xufox 你能写代码吗
  • JavaScript 没有关联数组,因此无法创建。
  • 只是一个疯狂的猜测,但问题可能是它无法设置属性num of undefined。

标签: javascript ecmascript-6


【解决方案1】:

您将初始化名称,然后使用您的对象的属性。在这种情况下,名称未定义,您尝试设置未定义的属性。

class Validator
{
  
  constructor(){

        this.name = {num :['one','two']} ;
        
    }
    display() {


       

        console.log(this.name['num']);
    } 
}
 var validator = new Validator();
validator.display();

【讨论】:

  • 对于此类问题,问题的解释远比“准备好复制”的解决方案重要。
  • 因为名称未定义,您尝试设置未定义的属性。
  • 这不是一个关联数组,不管它是什么。这是一个对象。
  • @ArturHovhannisyan 编辑您的答案。不要将最重要的部分放在 cmets 中。
  • @Xufox 感谢您的建议
【解决方案2】:

Javascript 没有关联数组,但可以使用 Object 字面量作为替代。 在这里,您需要在使用它之前定义对象。

class Validate{
    constructor(){
        this.name={}//define this.name
        this.name['num'] = ['one','two'];
    }
    display() {
        console.log(this.name['num']);
    }
}

【讨论】:

    猜你喜欢
    • 2017-08-02
    • 2012-03-19
    • 2019-09-30
    • 2021-01-22
    • 2016-05-11
    • 2011-03-17
    • 2014-12-17
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多