深层对象(数组)值获取
function getDeepDataFromArrOrObj(data, directArr = []) {
if (directArr.length === 0) {
return data;
}
const name = directArr.shift();
if (!data[name]) {
return name + "子项不存在";
}
if (Array.isArray(data[name]) || data[name].constructor === Object) {
return getDeepDataFromArrOrObj(data[name], directArr);
} else {
return name + "子项不是对象或数组";
}
}
----------------------------------------数据调用---------------------------------------------
const directArr = ["data", "data", "tHeader", "1", "children"];
const value = fun.getDeepDataFromArrOrObj(data, directArr);
console.log(value);
----------------------------------------测试数据---------------------------------------------
var data = {
data: {
isLogin: true,
isSuccess: true,
msg: "",
data: {
tHeader: [
{
name: "时间",
children: []
},
{
name: "表单1",
children: ["姓名", "年龄", "费率"]
},
{
name: "表单2",
children: ["姓名", "年龄", "费率"]
}
],
tBody: [
{
time: "2021-04-23 00:00:00",
oneLine: [[], []]
},
{
time: "2021-04-23 02:00:00",
oneLine: [
{
time: "1619114460000",
timeFmt: "2021-04-23 02:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.1",
type: "text"
}
]
},
{
time: "1619114460000",
timeFmt: "2021-04-23 02:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 04:00:00",
oneLine: [
{
time: "1619121660000",
timeFmt: "2021-04-23 04:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619121660000",
timeFmt: "2021-04-23 04:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 06:00:00",
oneLine: [
{
time: "1619128860000",
timeFmt: "2021-04-23 06:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619128860000",
timeFmt: "2021-04-23 06:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 08:00:00",
oneLine: [
{
time: "1619345929727",
timeFmt: "2021-04-25 18:18:49",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619136060000",
timeFmt: "2021-04-23 08:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 10:00:00",
oneLine: [
{
time: "1619143260000",
timeFmt: "2021-04-23 10:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619143260000",
timeFmt: "2021-04-23 10:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 12:00:00",
oneLine: [
{
time: "1619150460000",
timeFmt: "2021-04-23 12:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619150460000",
timeFmt: "2021-04-23 12:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 14:00:00",
oneLine: [
{
time: "1619157660000",
timeFmt: "2021-04-23 14:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619157660000",
timeFmt: "2021-04-23 14:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 16:00:00",
oneLine: [
{
time: "1619164860000",
timeFmt: "2021-04-23 16:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619164860000",
timeFmt: "2021-04-23 16:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 18:00:00",
oneLine: [
{
time: "1619172060000",
timeFmt: "2021-04-23 18:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619172060000",
timeFmt: "2021-04-23 18:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 20:00:00",
oneLine: [
{
time: "1619179260000",
timeFmt: "2021-04-23 20:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619179260000",
timeFmt: "2021-04-23 20:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-23 22:00:00",
oneLine: [
{
time: "1619186460000",
timeFmt: "2021-04-23 22:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619186460000",
timeFmt: "2021-04-23 22:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
},
{
time: "2021-04-24 00:00:00",
oneLine: [
{
time: "1619193660000",
timeFmt: "2021-04-24 00:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.5",
type: "text"
}
]
},
{
time: "1619193660000",
timeFmt: "2021-04-24 00:01:00",
items: [
{
name: "姓名",
value: "aaa",
type: "text"
},
{
name: "年龄",
value: "24",
type: "text"
},
{
name: "费率",
value: "0.8",
type: "text"
}
]
}
]
}
]
}
}
};

该函数用于从深层嵌套的对象或数组中获取指定路径的数据,输入一个数据对象和一个路径数组,返回目标值。测试数据展示了如何从一个包含多级数据的表格结构中获取特定子项。
859

被折叠的 条评论
为什么被折叠?



