3
考虑这个例子:如何使用lodash深套,而无需创建不定值
var object = {};
_.set(object, [ 1, 2 ], 5);
console.log(object);
在控制台中得到的对象是:
{
1: [undefined, undefined, 5]
}
现在想象一下,而不是整数2,你是设置时间戳为1445231475.现在,在一个非常大的数组中有1445231474个未定义的值,在几次_.set操作之后将会耗尽内存。
如果可能的_.set,如何将一个去创造这个对象:
{
1: {
2: 5
}
}
这是可能的,如果2确实是一个字符串,如“一”,但Lodash将迫使甚至是“2”到多个未定义值的数组。
如果需要,我可以使用_.merge,但是使用_.set能力我会更加兴奋。
谢谢@Amit,很好的描述'为什么不'。我现在可以选择使用与_.set类似的属性的自定义混搭,或者_.merge,这可能是我要去的方式。干杯! – ryanm
@ryanm,你能详细说明一下吗?我遇到了类似的问题,并希望避免_.set的这个“特征”。 – Sigfried
@Sigfried我不在这个Q&A的思维空间中,但我会尽力帮忙。我认为这个关键是使用一个字符串来代替'3',或者使用一个数组(lodash集合)。还有一个定制设置,可以覆盖您的自定义需求:https://lodash.com/docs/4.15.0#setWith希望有所帮助! – ryanm