3 回答

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
。
請參閱下面的基準測試結果:

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)

TA貢獻1833條經驗 獲得超4個贊
const keys = Object.keys(someObj);
for(let i = 0; i < keys.length; i++) {
someObj[keys[i]].message = 'Your string';
}
添加回答
舉報