Home > OS >  Lodash set integer paths strange behavior [duplicate]
Lodash set integer paths strange behavior [duplicate]

Time:09-24

_.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>

  • Related