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)
}
簡單的while循環(huán)set Object 屬性 (有則合并,無則創(chuàng)建)
最后編輯于 :
?著作權(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ù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 我們先定義一個對象,這個對象有原型上的屬性,有不可枚舉屬性,有可枚舉屬性 for in可以循環(huán)出所有的可枚舉屬性,...
- 引言 最近比較忙導(dǎo)致這篇拖了好久啊,第二篇的作用域和閉包因為其中一部分沒搞得很清楚也很難受,決定不和自己鉆牛角尖了...
- ES6 允許字面量定義對象時,用表達式作為對象的屬性名,即把表達式放在方括號內(nèi),這樣就可以循環(huán)出自定義屬性名,并把...
- 在上一關(guān),我們認識了while循環(huán)。 在這關(guān),我們繼續(xù)熟悉它。 角色的任務(wù)很簡單,就是向前走,直到走不下去。 那就...
- for...in循環(huán)是遍歷對象的每一個可枚舉屬性,包括原型鏈上面的可枚舉屬性。 Object.keys()只是遍歷...