【发布时间】:2019-03-25 15:09:40
【问题描述】:
我得到了附件中的 Json 结果。它是一个里面有物体的物体。我在一个数组中转换了主对象,现在我可以毫无问题地循环它。但是,我无法获取内部对象内的信息。顺便说一句,在对象内部我可以得到任意数量的子对象,从 0 到未定义。
我需要在 Vue 项目中使用它。但由于这是纯 JS,我制作了一个文件仅用于测试目的。如果它在 JS 中工作,我可以让它在 Vue 中工作。
我尝试将对象转换为数组(非常有效,并且包含在代码中),但我无法循环并再次转换。
let dados = {
et1: {
at:"Lorem ipsum dolor sit amet, consectetur",
st:"Done",
di:"01/19",
df:"03/19",
vl:"10000",
sub1:{
at:"Integer ligula purus, convallis convallis",
st:"Done",
di:"01/19",
df:"03/19",
vl:"8000"
},
sub2:{
at:"Mauris felis tellus, ullamcorper eu",
st:"Done",
di:"01/19",
df:"03/19",
vl:"2000"
}
},
et2: {
at:"Nunc in urna ultricies sapien",
st:"Post",
di:"01/19",
df:"03/19",
vl:"40000"
},
et3: {
at:"Phasellus varius rhoncus urna, nec",
st:"Execution",
di:"01/19",
df:"03/19",
vl:"4000",
sub1:{
at:"Phasellus varius rhoncus urna, nec",
st:"Execution",
di:"01/19",
df:"03/19",
vl:"2000"
}
}
}
console.log(dados)
Object.entries(dados).forEach(([key, value]) => {
console.log(value);
let fields = Object.values(value);
console.log(fields)
});
使用这段代码,我得到了一个数组,但内部对象没有改变,正如预期的那样。我只需要找到如何转换内部对象。也许在循环中有一个循环(我认为这是一种不好的做法,不是吗?)
【问题讨论】:
-
到目前为止你尝试过什么?请出示您的代码。
-
“也许在一个循环内有一个循环”:是的。 “我认为这是一种不好的做法,不是吗?”:没有
-
@Soviut 有代码,在sn-p的底部
-
或者你可以尝试递归,取决于用例。如果它只有 2 个级别,那么只需使用 2 个
for语句 -
预期输出是多少?您可能必须在
forEach内执行Object.entries(value),具体取决于您要执行的操作
标签: javascript arrays loops object