Javascript 将替换的值从对象存储到另一个数组中

Javascript 将替换的值从对象存储到另一个数组中,javascript,Javascript,我有一个对象,我循环一个for-in循环,它通过对象循环找到键和值 house: { john: { love_off: "mary" } } 我的for in循环返回: for ( var key in house.john) { house.john[key.replace("_off","") = house.john[key]; } 它返回原始数组长的副本,其中包含: house: { john: { love:

我有一个对象,我循环一个for-in循环,它通过对象循环找到键和值

house: {
  john: {
       love_off: "mary"
  }
}
我的for in循环返回:

 for ( var key in house.john) {
     house.john[key.replace("_off","") = house.john[key];
 }
它返回原始数组长的副本,其中包含:

house: {
      john: {
           love: "mary"
           love_off: "mary"
      }
    }

如何从对象中获取“love”:“mary”,并将其添加到需要返回的数组中?

必须使用
delete
语句才能删除旧属性

删除操作符从对象中删除属性。

var对象={
“房子”:{
“约翰”:{
“爱你”:“玛丽”
}
}
}
for(var key in object.house.john){
object.house.john[key.replace(“_off”,”)]=object.house.john[key];
if(object.house.john.hasOwnProperty(key))
删除object.house.john[key];
}
console.log(对象)试试这个

var myArray= [] 
for ( var key in object.house.john) {         
     object.house.john[key.replace("_off","")] = object.house.john[key];
     delete object.house.john[key];
     myArray.push(object.house.john);
 }

如果正确解释问题,您可以使用
JSON.stringify()
JSON.parse()
.replace()


可以使用在所有对象关键点上循环

然后进行替换,最重要的是删除旧密钥属性

代码示例:

var obj={house:{john:{love_off:“mary”}};
Object.key(obj.house.john).forEach(function(k){
obj.house.john[k.replace('u off','')=obj.house.john[k];
删除obj.house.john[k];
});

控制台日志(obj)
您需要将
love\u off
对替换为新的
love
对吗?问题的
javascript
处没有显示任何数组。结果对象是否为预期结果?你想得到新的属性和价值吗?我只是想得到新的属性和价值。我说错了。很抱歉,可能需要先检查属性是否存在建议…使用hasOwnProperty()。。。财产的价值可能是虚假的,但仍然存在。我会先检查一下modifications@charlietfl是的,你说得对
hasOwnProperty
在这种情况下是更好的选择。@charlietfl“建议…使用hasOwnProperty()”有趣。如果回忆正确,最近收到两条不同的评论,建议在
操作员中使用或不使用
。您是否知道这个问题解决了
运算符中的
.hasOwnProperty()
之间的差异?@guest271314只需检查键是否为可枚举的好答案!!但是用“\u off”和方法
String.prototype.replace()
检查可能是多个属性,只有第一个出现的才会被删除replaced@YosvelQuintero可以调整
RegExp
。在投稿前没有考虑OP以外的其他对象
data = JSON.parse(JSON.stringify(data).replace(/_off(?=":)/, ""));