亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字符串 JavaScript 創建嵌套對象

從字符串 JavaScript 創建嵌套對象

慕雪6442864 2022-10-21 09:30:25
我有一個這樣的字符串:let user = "req.user.role"有沒有辦法將它轉換為嵌套對象,以便在這樣的另一個值中使用?let converted_string = req.user.role我知道我可以用user.split(".")拆分用戶我的想象:let user = "req.user.role".split(".") let converted_string = user[0].user[1].user[2]我找到了與我的問題相關的最接近的答案:Create nested object from query string in Javascript
查看完整描述

4 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

嘗試這個


let user = "req.user.role";

let userObj = user.split('.').reduceRight((obj, next) => ({

  [next]: obj

}), {});

console.log(userObj);


或者這個,對于舊瀏覽器


var user = "req.user.role";

var userArray = user.split('.'), userObj = {}, temp = userObj;

for (var i = 0; i < userArray.length; i++) {

  temp = temp[userArray[i]] = {};

}

console.log(userObj);


查看完整回答
反對 回復 2022-10-21
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

我將對此進行嘗試:


let user = "req.user.role"


const trav = (str, o) => {

  const m = str.split('.')

  let res = undefined


  let i = 0

  while (i < m.length) {

    res = (res || o)[m[i]]

    if (!res) break

    i++

  }

  return res


}


const val = trav(user, {

  req: {

    user: {

      role: "admin"

    }

  }

})

console.log(val)

此函數將遍歷傳入的對象,以提供提供的 string.split "." 的整個長度。返回值或未定義的列表。



查看完整回答
反對 回復 2022-10-21
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

該函數getvalue()將返回給定全局變量的嵌套屬性:


var user="req.user.role";

var req={user:{role:"admin"}};


function getvalue(str){

  return str.split('.').reduce((r,c,i)=>i?r[c]:window[c], '');

}

console.log(getvalue(user));


查看完整回答
反對 回復 2022-10-21
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

你可以這樣做:


let userSplitted = "req.user.role".split('.');

let obj, o = obj = {};


userSplitted.forEach(key=>{o=o[key]={}});


查看完整回答
反對 回復 2022-10-21
  • 4 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號