“_”是否有创建键=>值对象的快捷方式?
Does "_" have a shortcut for creating a key => value object?
我经常发现自己处于需要以下构造的情况:
function keyValuePair(key, value) {
var obj = {};
obj[key] = value;
return obj;
};
当您需要创建一个动态确定其键的对象时,这非常方便:
var name = "someProperty";
var myObj = keyValue('prefix.' + name, 123);
例如,当您使用 MongoDB 查询时,通常就是这种情况。
是否可以用lodash
或underscore
达到相同的结果?
使用 ES6,您可以执行以下操作
var myObj = {[`prefix.${name}`]: 123};
看起来和感觉起来好多了。
不过,您暂时需要使用 Babel 或类似的框架将其转译为 ES5 代码。
关于underscore
你可以做以下事情:
_.object(['key'], ['value'])
这会产生一个对象
{
'key': 'value'
}
关于 _.object
的文档
如果您使用的是 lodash,set() 方法适用于此:
var myObj = _.set({}, 'prefix.name', 'foo');
console.log(myObj.prefix.name);
// → foo
我经常发现自己处于需要以下构造的情况:
function keyValuePair(key, value) {
var obj = {};
obj[key] = value;
return obj;
};
当您需要创建一个动态确定其键的对象时,这非常方便:
var name = "someProperty";
var myObj = keyValue('prefix.' + name, 123);
例如,当您使用 MongoDB 查询时,通常就是这种情况。
是否可以用lodash
或underscore
达到相同的结果?
使用 ES6,您可以执行以下操作
var myObj = {[`prefix.${name}`]: 123};
看起来和感觉起来好多了。
不过,您暂时需要使用 Babel 或类似的框架将其转译为 ES5 代码。
关于underscore
你可以做以下事情:
_.object(['key'], ['value'])
这会产生一个对象
{
'key': 'value'
}
关于 _.object
的文档如果您使用的是 lodash,set() 方法适用于此:
var myObj = _.set({}, 'prefix.name', 'foo');
console.log(myObj.prefix.name);
// → foo