【发布时间】:2020-08-22 10:09:45
【问题描述】:
我有一个数组,其中包括孩子。我已成功对数组进行排序,但无法排序,孩子们。
使用下面的代码,我可以对外部邮件数组元素进行排序,但不能对其子元素进行排序。
https://jsfiddle.net/eokd5uzj/
var arry = [{
'id': 301,
'name': '2 Foo',
'open': 'open',
'children': [{
'id': 1313,
'name': '2.1 Foo ',
'open': 'open'
},
{
'id': 1143,
'name': '2.3 Foo ',
'open': 'open'
},
{
'id': 1132,
'name': '2.2 Foo ',
'open': 'open'
},
],
},
{
'id': 30,
'name': '1 Foo',
'open': 'open',
'children': [{
'id': 1134,
'name': '1.1 Foo ',
'open': 'open'
},
{
'id': 1130,
'name': '1.3 Foo ',
'open': 'open'
},
{
'id': 1123,
'name': '1.2 Foo ',
'open': 'open'
},
],
},
];
function SortByName(a, b) {
var aName = a.name.toLowerCase();
var bName = b.name.toLowerCase();
return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
}
$(document).ready(function() {
var sorted_array = arry.sort(SortByName)
console.log(sorted_array)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id='data'>
</p>
【问题讨论】:
-
你永远不会给孩子打电话
.sort。 -
@VLAZ 好的,那么解决方案是什么
-
@c.grey 在每个元素的子元素上调用
.sort(SortByName)。 -
@MakwanaPrahlad 不,它不是递归的
标签: javascript html jquery