Javascript - 如何从对象构造函数中的字典中检索键

标签 javascript dictionary constructor key-value

目前,我正在初始化一个对象,并从字典中检索其值之一,采用简化形式,如下所示

var TrailColor = {
    red: '#FF0000',
    orange: '#FF9900',
    yellow: '#FFFF00' 
};

function Trail(trailName, trailColor) {
    this.trailName = trailName;
    this.trailColor = trailColor;
}

var trail1 = new Trail("TrailName", TrailColor.red);

现在我决定,我不仅想要颜色代码,还想要颜色名称作为该对象的一部分。但是,我不确定如何“相反”检索颜色名称 - 因此我根据值得到一个确切的键(不是整个数组,我知道如何获取它)并将其作为对象的属性。有没有一些简单的方法可以做到这一点,而不需要遍历整个数组?谢谢。

最佳答案

我首先传递颜色名称而不是值:

function Trail(name, color = 'red') {
  this.name = name;
  this.colorName = color;
  this.color = this._colors[color];
}

Object.assign(Trail.prototype, {
  _colors: {
    red: '#FF0000',
    orange: '#FF9900',
    yellow: '#FFFF00'
  },
  getColorName() {
    return this.colorName;
  }
});

const trail = new Trail("TrailName", "red");
trail.colorName // => "red"
trail.getColorName() // => "red"     
trail.color // => "#FF0000" 

关于Javascript - 如何从对象构造函数中的字典中检索键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52929429/

相关文章:

c++ - 什么时候在构造函数和析构函数中调用 this-> 是安全的

javascript - 为什么在这种情况下算术运算返回 NaN?

python - 结合两个字典,仍然保留对 python 中原始对象的引用

Python:计算字典的重复值

c++ - 为什么 map 的元素不需要复制或移动构造函数,而 vector 的元素需要?

java - 接口(interface)中构造函数的要求

javascript - React - 如何根据 bool 参数包装和元素?

javascript - 正在更改的对象的属性,即使它们应该由 Value 传递

javascript - AJAX 实时搜索 txt 文件中的字典?

C#构造函数的方法引用