【发布时间】:2015-09-22 12:24:13
【问题描述】:
假设我有一个复杂的对象数组,如下所示:
[
{
"title": "Fundamentals",
"order": 1,
"lessonRef": "fundamentals",
"children": [
{
"title": "History",
"order": 1,
"lessonRef": "history",
"children": []
},
{
"title": "NEW NODE 1",
"lessonRef": "NEW NODE 1 STUB",
"children": []
},
{
"title": "Math",
"order": 2,
"lessonRef": "math",
"children": []
},
{
"title": "NEW NODE 2",
"lessonRef": "NEW NODE 2 STUB",
"children": []
}
{
"title": "Geography",
"order": 3,
"lessonRef": "geography",
"children": []
}
]
},
{
"title": "Basics",
"order": 2,
"lessonRef": "basics",
"children": []
}
]
我该怎么做:
- 遍历每个节点,
- 检测到有没有
order字段的new node,并根据它在数组中的位置给它下一个数字, - 然后在此之后递增每个现有的同级,同时也
- 考虑它下面的任何其他新添加的节点吗?
我正在寻找一种 lodash 方法来帮助我开始使用纯 JavaScript。
编辑:提供我的解决方案——在我的情况下,数组顺序是有保证的,但我会将问题扩展到不保证顺序的情况。
【问题讨论】:
-
听起来您只想将每个订单号重新分配为其数组位置。您所要做的就是迭代每个数组并将 order 属性分配为数组位置。而且,您可以使其在每个子数组上递归。
-
哇哦。那肯定会奏效。让我试试看。
-
是的,这绝对有效。刚刚使用数组位置做了一个简单的递归函数。我想我会把它放在我的问题中,并在不能保证数组顺序的情况下更新它。谢谢。
-
本论坛的协议是不要将答案放入您的问题中。如果您找到尚未提供的答案,请将答案放入您自己的答案中(您可以回答自己的问题)。问题应该是问题。答案应该是答案。
标签: javascript arrays sorting lodash