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

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

如何將所有對象字段復制到具有相同名稱的變量中?

如何將所有對象字段復制到具有相同名稱的變量中?

慕容森 2021-06-11 18:11:47
JavaScript 對象包含一組鍵/值對。給定對象,是否可以為每個這樣的對創建一個與其鍵同名的變量,并使用該鍵在對象中分配的值?另外,這在 JavaScript ES5 中可行嗎?例如,如果對象是var obj = {a: 'aaa', b: 'bbb'}然后這個過程應該創建兩個變量:var a = 'aaa';var b = 'bbb';
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

如果您事先知道密鑰,則可以解構(僅限 ES6):


const obj = { foo: 'foo', bar: 'bar' };

const { foo, bar } = obj;

console.log(foo);

console.log(bar);

不推薦,因為全局變量不好,但您可以將對象分配給window,然后將其屬性作為獨立變量引用。這在 ES5 中使用 polyfill 是可行的:


const obj = { foo: 'foo', bar: 'bar' };

Object.assign(window, obj);

console.log(foo);

console.log(bar);

但是動態變量名通常是一個壞主意。如果可能的話,最好只使用您最初擁有的對象。


更不推薦,但既然它回答了這個問題,你可以eval(但請不要):


(() => {

  const obj = { foo: 'foo', bar: 'bar' };

  for (const [prop, val] of Object.entries(obj)) {

    eval(`var ${prop} = val`);

  }

  console.log(foo);

  console.log(bar);

})();

如果必須的話,上述也可以在 ES5 中完成,但你不應該 - 這是一個 X/Y 問題


查看完整回答
反對 回復 2021-06-24
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

您可以使用解構


 const obj = {a : "aaaa", b : "bbbb"};

 

 

 //use destructuring

 

const { a } = obj;


console.log(a);


查看完整回答
反對 回復 2021-06-24
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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