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';
}
添加回答
举报