使用Underscore中的range()
函数,我可以创建如下代码:
_.range(10);
>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我能否以某种方式修改/使用它来创建如下结果:
solution();
>> {0: true, 1: true, 2: true, 3: true}
解决方案可能还包括jQuery。
使用Underscore中的range()
函数,我可以创建如下代码:
_.range(10);
>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
solution();
>> {0: true, 1: true, 2: true, 3: true}
所接受的答案对于给定的问题来说完全可以,但应该注意,由于它实际上使用的是索引而不是元素的值,因此它只适用于从零开始递增的整数范围。
这里有另外一种许多可能解决方案中的一种。当我需要将数组转换为“查找哈希表”时,我会这样做:
var range = _.range(10);
var hash = _.object(range, range.map(_.const(true)));
这将考虑您源数组中的实际值,这些值可以是任何顺序的数字或字符串。
我不特别推荐这样做,但如果可以确定您的源范围不包含零,则可以进一步简化它,因为所有值都将是真值:
var hash = _.object(range, range);