_.set()
behaves strangely when setting a path which contains an integer. Here is an example:
const object = {}
_.set(object, "wavelength.415", "foo");
console.log(JSON.stringify(object))
Upon running this code, the object will look something like this:
{"wavelength":[null,null,null,null,null,etc....,"foo"]}
Is there a way around this behavior or am I doing something wrong?
CodePudding user response:
This is the intended behavior (see this issue), use _.setWith()
instead:
const object = {}
_.setWith(object, "wavelength.415", "foo", Object);
console.log(JSON.stringify(object))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG ljU96qKRCWh quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>