簡單的while循環(huán)set Object 屬性 (有則合并,無則創(chuàng)建)

function setDescendantProp(obj, desc, fun) {
    const arr = desc.split('.');
    let prop = arr.shift();

    // 循環(huán)路徑賦值
    while (arr.length){
        if(!obj[prop]){
            obj[prop] = {};
        }
        // eslint-disable-next-line no-param-reassign
        obj = obj[prop]
        prop = arr.shift();
    }

    obj[prop] = fun;
}


path:目標位置
value:目標值
obj:目標
function editFn(path, value, obj) {
    const arr = path.split('.')
    const len = arr.length - 1
    arr.reduce((cur, key, index) => {
        if (!(cur[key]))
            throw `${key} 不存在!`
        if (index === len) {
            cur[key] = value
        }
        return cur[key]
    }, obj)
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容