是" _"有一个创建密钥的快捷方式=>价值对象?

时间:2015-09-03 08:35:48

标签: javascript underscore.js lodash

我经常发现自己需要以下结构:

function keyValuePair(key, value) {
  var obj = {};
  obj[key] = value;
  return obj;
};

当您需要创建一个动态确定其键的对象时,这非常方便:

var name = "someProperty";
var myObj = keyValue('prefix.' + name, 123);

例如,当您使用MongoDB查询时通常就是这种情况。

是否可以通过lodashunderscore获得相同的结果?

3 个答案:

答案 0 :(得分:4)

使用ES6,您可以执行以下操作

var myObj = {[`prefix.${name}`]: 123};

看起来和感觉好多了。

您可能希望暂时使用 Babel 或类似的框架将其转换为ES5代码。

答案 1 :(得分:3)

关于underscore,您可以执行以下操作:

_.object(['key'], ['value'])

会产生一个对象

{
  'key': 'value'
}

_.object

上的文档

答案 2 :(得分:1)

如果您使用的是lodash,set()方法适用于此:

var myObj = _.set({}, 'prefix.name', 'foo');
console.log(myObj.prefix.name);
// → foo