facebook的库中keyMirror节点包部分的用途是什么?

时间:2015-06-17 19:44:28

标签: node.js facebook reactjs

这是此处的keyMirror包 https://www.npmjs.com/package/keymirror

它将其定义为一个简单的实用程序,用于创建值等于其键的对象

Input: {key1: val1, key2: val2}
Output: {key1: key1, key2: key2}

但为什么我需要这样做?

与此不同,

{OPTION_ONE:1, OPTION_TWO:2, OPTION_THREE:3}

为什么应用程序会发现以下对上述输入的转换有用?

{OPTION_ONE:OPTION_ONE, OPTION_TWO:OPTION_TWO, OPTION_THREE:OPTION_THREE}

1 个答案:

答案 0 :(得分:4)

它正在制作一个Enum对象(https://en.wikipedia.org/wiki/Enumerated_type

你可以这样做,就像你说的{OPTION_ONE:1, OPTION_TWO:2, OPTION_THREE:3},它是一个类似的Enum对象,但是如果你想知道值6是否是枚举值的话呢?您必须遍历所有键并检查所有值。

但是,如果键和值匹配,那么您可以检查对象中是否存在该键以了解该值是否也存在。

var mirror = keyMirror({a: null, b:null});
var someValue = 'd';
var validValue = mirror[someValue] !== undefined;