第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何替換javascript中嵌套對象的所有鍵

如何替換javascript中嵌套對象的所有鍵

暮色呼如 2024-01-18 14:33:19
  function renameKeys(obj, newKeys) {        const keyValues = Object.keys(obj).map((key) => {          let newKey = key + "1";          if (Array.isArray(obj[key]) == false) {            renameKeys(obj[key], newKeys);          }          console.log(newKey, "]", obj[key]);          return {            [newKey]: obj[key],          };        });        return Object.assign({}, ...keyValues);      }      test = JSON.parse(        '{"verifying_explanation":               {"bus_stop":["1234"],                "elementary_school":["1234"],                "middle_school":["1234"],                "high_school":["1234"]               }         }'      );      console.log(test);      data = renameKeys(test, this);      console.log(data);看起來所有按鍵的功能都改變了,但并沒有應用。我認為是因為復制主體。我不知道如何操作按鍵。我想替換所有鍵,以便在代碼中應用 i18n。所以新的密鑰將類似于let newKey = i18n.$t(key); 此短代碼僅用于測試代碼。請給我一些想法來解決這個問題。
查看完整描述

2 回答

?
holdtom

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

您需要定義函數來創(chuàng)建新函數key value pairs,然后object從這些函數中形成一個函數。另外,檢查該值是否為object, 以遞歸地重命名嵌套對象 -


function renameKeys(obj) {

  const keyValues = Object.entries(obj).map(([key, value]) => {

    let newKey = key + "1";

    if (typeof value === 'object' && value !== null && !Array.isArray(value)) {

      value = renameKeys(value);

    }

    return [newKey, value];    

  });

  return Object.fromEntries(keyValues);

}


test = JSON.parse(

'{"verifying_explanation": {"bus_stop": ["1234"],"elementary_school": ["1234"],"middle_school": ["1234"],"high_school": ["1234"]}}'

);

console.log(test);

data = renameKeys(test, this);

console.log(data);


查看完整回答
反對 回復 2024-01-18
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

您無法在函數中返回新的鍵值對,相反,您只需向 obj 添加新鍵并刪除舊鍵即可。


function renameKeys(obj, newKeys) {

        Object.keys(obj).map((key) => {

          let newKey = key + "1";

          if (Array.isArray(obj[key]) == false) {

            renameKeys(obj[key], newKeys);

          }

          // console.log(newKey, "]", obj[key]);

          obj[newKey]=obj[key];

          delete obj[key];

        });

      }


      test = JSON.parse(

        `{"verifying_explanation":

               {"bus_stop":["1234"],

                "elementary_school":["1234"],

                "middle_school":["1234"],

                "high_school":["1234"]

               }

         }`

      );

      

      console.log(test);

      data = renameKeys(test, this);

      console.log(test);


查看完整回答
反對 回復 2024-01-18
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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