Accessing or creating nested JavaScript objects with string key without eval

前端 未结 2 1471
无人及你
无人及你 2020-12-04 00:35

I am looking for a nice solution to access a property by string value, but if the property does not exist it should create it. If the root structure already has defined some

2条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-04 01:22

    I wouldn't reinvent the wheel in this case, and instead use lodash. Specifically the set() function. As per their example:

    var object = { 'a': [{ 'b': { 'c': 3 } }] };
    
    _.set(object, 'a[0].b.c', 4);
    console.log(object.a[0].b.c);
    // => 4
    
    _.set(object, ['x', '0', 'y', 'z'], 5);
    console.log(object.x[0].y.z);
    // => 5
    

提交回复
热议问题