Javascript 如何使用下划线函数将列表转换为具有默认值的字典?
如何使用下划线.js函数将列表转换为具有默认值的字典? 我可以用下划线将下面的代码压缩到更少的行吗Javascript 如何使用下划线函数将列表转换为具有默认值的字典?,javascript,underscore.js,Javascript,Underscore.js,如何使用下划线.js函数将列表转换为具有默认值的字典? 我可以用下划线将下面的代码压缩到更少的行吗 l = [1, 2, 3]; d = {}; for (var i in l){ d[l[i]] = 'defaut value'; } 也许是这样的: var l = [1, 2, 3]; var d = _.object(_.map(l, function(x) { return [x, 'default value']; })); 或者这个: var l = [1, 2, 3]; v
l = [1, 2, 3];
d = {};
for (var i in l){
d[l[i]] = 'defaut value';
}
也许是这样的:
var l = [1, 2, 3];
var d = _.object(_.map(l, function(x) { return [x, 'default value']; }));
或者这个:
var l = [1, 2, 3];
var d = _.reduce(l, function(m, x) { m[x] = 'default value'; return m; }, {});
也许是这样的:
var l = [1, 2, 3];
var d = _.object(_.map(l, function(x) { return [x, 'default value']; }));
或者这个:
var l = [1, 2, 3];
var d = _.reduce(l, function(m, x) { m[x] = 'default value'; return m; }, {});
也许是这样的:
var l = [1, 2, 3];
var d = _.object(_.map(l, function(x) { return [x, 'default value']; }));
或者这个:
var l = [1, 2, 3];
var d = _.reduce(l, function(m, x) { m[x] = 'default value'; return m; }, {});
也许是这样的:
var l = [1, 2, 3];
var d = _.object(_.map(l, function(x) { return [x, 'default value']; }));
或者这个:
var l = [1, 2, 3];
var d = _.reduce(l, function(m, x) { m[x] = 'default value'; return m; }, {});
[1,2,3].map(函数(a){this[a]='default'},d={})@丹达维斯:为什么
map
?为什么this
而不是简单地d
?使用this比使用closuring d运行得更快,并且避免了将逻辑硬编码到数据中。forEach也可以工作,甚至更快,我只是习惯于使用map(),以便在构建时使用return记录迭代。我将“热循环”转换为forEach,一旦它被测试,或者如果我可以提前退出的话…[1,2,3].map(函数(a){this[a]='default'},d={})@丹达维斯:为什么map
?为什么this
而不是简单地d
?使用this比使用closuring d运行得更快,并且避免了将逻辑硬编码到数据中。forEach也可以工作,甚至更快,我只是习惯于使用map(),以便在构建时使用return记录迭代。我将“热循环”转换为forEach,一旦它被测试,或者如果我可以提前退出的话…[1,2,3].map(函数(a){this[a]='default'},d={})@丹达维斯:为什么map
?为什么this
而不是简单地d
?使用this比使用closuring d运行得更快,并且避免了将逻辑硬编码到数据中。forEach也可以工作,甚至更快,我只是习惯于使用map(),以便在构建时使用return记录迭代。我将“热循环”转换为forEach,一旦它被测试,或者如果我可以提前退出的话…[1,2,3].map(函数(a){this[a]='default'},d={})@丹达维斯:为什么map
?为什么this
而不是简单地d
?使用this比使用closuring d运行得更快,并且避免了将逻辑硬编码到数据中。forEach也可以工作,甚至更快,我只是习惯于使用map(),以便在构建时使用return记录迭代。我将“热循环”转换为forEach,一旦它被测试,或者如果我可以提前退出,则将其转换为某些/每隔一次…同样正确:var d=u1;(l).reduce(函数(m,x){m[x]='default value';返回m;},{});您还可以将..chain
与第一个函数一起使用,..chain().map(…).object().value()
:同样正确:var d=.\ul.reduce(函数(m,x){m[x]='default value';返回m;},{});您还可以将..chain
与第一个函数一起使用,..chain().map(…).object().value()
:同样正确:var d=.\ul.reduce(函数(m,x){m[x]='default value';返回m;},{});您还可以将..chain
与第一个函数一起使用,..chain().map(…).object().value()
:同样正确:var d=.\ul.reduce(函数(m,x){m[x]='default value';返回m;},{});您还可以将..chain
与第一个一起使用,..chain().map(…).object().value()
: