Javascript 将替换的值从对象存储到另一个数组中
我有一个对象,我循环一个for-in循环,它通过对象循环找到键和值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:
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(?=":)/, ""));