【发布时间】:2019-11-11 09:58:44
【问题描述】:
我有几个级别的深 javscript 对象。所有级别都是对象,除了最终级别是我需要排序的数组。
到目前为止,我的代码如下所示:
for (let group in objRes) {
if (objRes.hasOwnProperty(group)) {
for (let type in objRes[group]) {
if (objRes[group].hasOwnProperty(type)) {
for (let name in objRes[group][type]) {
if (objRes[group][type].hasOwnProperty(name)) {
for (let tenor in objRes[group][type][name]) {
if (objRes[group][type][name].hasOwnProperty(tenor)) {
objRes[group][type][name][tenor] = objRes[group][type][name][tenor].sort((x,y)=>x.date>y.date);
}
}
}
}
}
}
}
}
级别 (group,type,name,tenor) 都是字符串,最后一级数组成员如下所示:{date:'2019-12-25',value:35}
所以objRes 看起来像
{
group1:
{type1:
{name1:
{tenor1:[{date:'2019-12-25',value:35},...],
name2 :{...}
}
},
{type2 :{...}},
group2:{...}
}
有没有巧妙的方法来简化这个?
您可以假设级别数已知或未知。
【问题讨论】:
-
请用
objRes的内容的代表性示例更新您的问题。 -
如果级别数是任意的,什么条件会告诉您停止并执行
sort?该级别的对象是什么? -
您可能可以编写一个递归函数来检查它是否具有较低的级别
-
该更新没有提供
objRes内容的代表性示例,完全不清楚对象的末端在哪里(您的大括号不匹配)。如果您不愿意努力解决您的问题以确保其清晰、提供有用的样本数据等,那么人们为什么要努力回答它?
标签: javascript arrays sorting object recursion