获取嵌套对象/数组JavaScript的值
如何获取此嵌套对象数组中的所有值:获取嵌套对象/数组JavaScript的值,javascript,arrays,object,Javascript,Arrays,Object,如何获取此嵌套对象数组中的所有值: { "report": { "firstSection": { "totalIncome": 9650000, "category": null, "mustPay": null, "tax": null, "bef": null, "message": "Los ingresos excede
{
"report": {
"firstSection": {
"totalIncome": 9650000,
"category": null,
"mustPay": null,
"tax": null,
"bef": null,
"message": "Los ingresos exceden el monto máximo para la modalidad monotributo"
},
"secondSection": {
"subTotals": {
"intTotal": 6295.166666666666,
"ordTotal": 3884679.201041667
},
"unitaryProductionCost": 247.55291005291008,
"unitaryInfo": {
"unitarySalesCost": 16338.425925925927,
"unitarySalesPrice": 23536.585365853658
},
"bankDebts": 0,
"monthlySimpleDepreciation": 173333.33333333334
},
}
};
基本上我想要一个这样的数组,只包含以下值:
{
"report": [
9650000,
null,
null,
null,
null,
"Los ingresos exceden el monto máximo para la modalidad monotributo",
6295.166666666666,
3884679.201041667,
247.55291005291008,
16338.425925925927,
23536.585365853658,
0,
173333.33333333334,
]
}
我有这个回复。如果有帮助的话,谢谢 此递归方法用于获取当前对象的值。值是使用迭代的。如果该值是一个对象(而不是
null
),它也会使用该方法进行迭代。实际值通过以下方式组合到单个数组:
const obj={“报告”:{“第一节”:{“总收入”:9650000,“类别”:null,“mustPay”:null,“税”:null,“bef”:null,“信息”:“Los Ingreos Exceeden el monto máximo para la modalidad Monotibuto”,第二节:{“小计”:{“intTotal”:6295.166666666666666666,“ordTotal”:3884679.201041667},“unitaryProductionCost”:247.55291005291008,“unitaryInfo”:{“统一销售成本”:16338.425925925927,“统一销售价格”:23536.585365853658},“银行债务”:0,“月简单折旧”:173333.3333333 4}};
常量getObjectValues=(obj)=>
对象值(obj).reduce((r,v)=>
r、 concat(v&&typeof v=='object'?getObjectValues(v):v)
, []);
常量结果=getObjectValues(obj);
console.log(result);
此递归方法用于获取当前对象的值。使用值进行迭代。如果值是对象(而不是null
),则也使用方法进行迭代。实际值与以下值组合到单个数组中:
const obj={“报告”:{“第一节”:{“总收入”:9650000,“类别”:null,“mustPay”:null,“税收”:null,“bef”:null,“信息”:“Los Ingreos Exceeden el monto máximo para la modalidad Monotibuto”},“第二节”:{“小计”:{“intTotal”:6295.166666666666666666,“ordTotal”:3884679.201041667},“unitaryProductionCost”:247.55291005291008,“unitaryInfo”:unitarySalesCost:16338.425925925927,“unitarySalesPrice:23536.585365853658},“银行债务”:0,“月简单折旧”:173333.3333 4};
常量getObjectValues=(obj)=>
对象值(obj).reduce((r,v)=>
r、 concat(v&&typeof v=='object'?getObjectValues(v):v)
, []);
常量结果=getObjectValues(obj);
console.log(结果);
这是工作代码
var数据={
“报告”:{
“第一节”:{
“总收入”:9650000,
“类别”:空,
“mustPay”:空,
“税”:空,
“bef”:空,
“信息”:“蒙托·马西莫·帕拉·莫达利达·莫托托除外”
},
“第二节”:{
“小计”:{
“总计”:6295.166666,
“订单总计”:3884679.201041667
},
“单位生产成本”:247.55291005291008,
“unitaryInfo”:{
“单位销售成本”:16338.425925925927,
“统一售价”:23536.585365853658
},
“银行债务”:0,
“月度简单折旧”:173333.33334
},
}
};
var ret={“报告”:[]}
函数getleafs(obj){
for(obj中的var键){
if(对象[键]&&typeof对象[键]=“对象”){
getleafs(obj[key]);
}否则{
ret[“报告”]。推送(obj[键]);
}
}
}
getleafs(数据);
console.log(ret);
这是工作代码
var数据={
“报告”:{
“第一节”:{
“总收入”:9650000,
“类别”:空,
“mustPay”:空,
“税”:空,
“bef”:空,
“信息”:“蒙托·马西莫·帕拉·莫达利达·莫托托除外”
},
“第二节”:{
“小计”:{
“总计”:6295.166666,
“订单总计”:3884679.201041667
},
“单位生产成本”:247.55291005291008,
“unitaryInfo”:{
“单位销售成本”:16338.425925925927,
“统一售价”:23536.585365853658
},
“银行债务”:0,
“月度简单折旧”:173333.33334
},
}
};
var ret={“报告”:[]}
函数getleafs(obj){
for(obj中的var键){
if(对象[键]&&typeof对象[键]=“对象”){
getleafs(obj[key]);
}否则{
ret[“报告”]。推送(obj[键]);
}
}
}
getleafs(数据);
console.log(ret);
通过递归函数跟踪对象:
var obj={
“报告”:{
“第一节”:{
“总收入”:9650000,
“类别”:空,
“mustPay”:空,
“税”:空,
“bef”:空,
“信息”:“蒙托·马西莫·帕拉·莫达利达·莫托托除外”
},
“第二节”:{
“小计”:{
“总计”:6295.166666,
“订单总计”:3884679.201041667
},
“单位生产成本”:247.55291005291008,
“unitaryInfo”:{
“单位销售成本”:16338.425925925927,
“统一售价”:23536.585365853658
},
“银行债务”:0,
“月度简单折旧”:173333.33334
},
}
};
功能跟踪器(obj、arr)
{
如果(对象的类型=='object')
{
用于(输入obj)
{
if(obj[键]==null)
{
arr.push(对象[键]);
}
else if(对象的类型[键]=“对象”)
{
arr=跟踪器(obj[key],arr);
}
其他的
{
arr.push(对象[键]);
}
}
}
返回arr;
}
var report={report:[]};
报告[“报告”]=追踪者(obj,[]);
console.log(report);
通过递归函数跟踪对象:
var obj={
“报告”:{
“第一节”:{
“总收入”:9650000,
“类别”:空,
“mustPay”:空,
“税”:空,
“bef”:空,