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

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

如何在 React 或 JavaScript 中更新嵌套對象的所有值

如何在 React 或 JavaScript 中更新嵌套對象的所有值

拉丁的傳說 2023-06-15 17:27:03
更新嵌套字典的所有值的合適方法是什么。假設我有這個對象:someObj = {  0: {    message: 'Some text',  },  1: {    message: 'Other text',  },}如果我只需要更新對象上的第一條消息,我會這樣做:someObj[0].message = 'New Message'但我想要實現的是用一個特定的文本更新對象中的所有消息值。實現上述目標的正確方法是什么?
查看完整描述

3 回答

?
慕容708150

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

您可以嘗試使用Object.keys(),請參閱文檔:

Object.keys()方法返回給定對象自己的可枚舉屬性名稱的數組,迭代順序與普通循環相同。

const someObj = { 0: { message: 'Some text', }, 1: { message: 'Other text', },}


Object.keys(someObj)

? ? ? .forEach(e => {

? ? ? ? ?someObj[e].message = 'new_text'

? ? ? })


console.log(someObj)

+1 超出范圍的更新:

@IsraGab 在評論部分提出了一個有趣的問題,為什么要在for..in.

所以我查看了一些基準來比較這兩種解決方案的速度。有趣的是,與這種情況相比,Object.keys().forEach()解決方案通常要快20%for..in。

請參閱下面的基準測試結果:

http://img1.sycdn.imooc.com/648ad98f0001742306520248.jpg


查看完整回答
反對 回復 2023-06-15
?
GCT1015

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

用一個for in loop


    for(let prop in object){

       object[prop].message = 'Your string';

   }

someObj = {

  0: {

    message: 'Some text',

  },

  1: {

    message: 'Other text',

  },

}


for(let prop in someObj){

someObj[prop].message = 'your string';

}


console.log(someObj)


查看完整回答
反對 回復 2023-06-15
?
瀟瀟雨雨

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

const keys = Object.keys(someObj);

for(let i = 0; i < keys.length; i++) {

  someObj[keys[i]].message = 'Your string';

}


查看完整回答
反對 回復 2023-06-15
  • 3 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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