如何根据javascript中嵌套数组的长度对对象数组进行排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何根据javascript中嵌套数组的长度对对象数组进行排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1642字,纯文字阅读大概需要3分钟。
内容图文
![如何根据javascript中嵌套数组的长度对对象数组进行排序](/upload/InfoBanner/zyjiaocheng/707/23d730c44a494d59a2431ff1702ed1d6.jpg)
我在javascript中有一个对象数组,每个对象都有一个数组:
{
category: [
{ name: "Cat1", elements : [
{ name: name, id: id } ]
},
{ name: "Cat2", elements : [
{ name: name, id: id },
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat3", elements : [
{ name: name, id: id },
{ name: name, id: id } ]
}
]
}
我想根据嵌套数组“elements”中的对象数量对数组“类别”进行排序.
例如,排序后,上面的对象可能看起来像这样(降序):
{
category: [
{ name: "Cat2", elements : [
{ name: name, id: id },
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat3", elements : [
{ name: name, id: id },
{ name: name, id: id } ]
},
{ name: "Cat1", elements : [
{ name: name, id: id } ]
}
]
}
我想知道是否有可能使用javascript的sort()方法完成此操作.有什么建议么?
提前致谢!
解决方法:
sort方法接受一个函数,您可以在其中定义如何比较两个元素.这是relevant documentation.
compareFunction Specifies a
function that defines the sort order.
If omitted, the array is sorted
lexicographically (in dictionary
order) according to the string
conversion of each element.
如果提供compareFunction,则根据compare函数的返回值对数组元素进行排序.如果a和b是被比较的两个元素,那么:
>如果compareFunction(a,b)小于0,则将a排序为低于b的索引.
>如果compareFunction(a,b)返回0,则保持a和b相对于彼此保持不变,但是对所有不同的元素进行排序.注意:ECMAscript标准不保证这种行为,因此并非所有浏览器(例如可追溯到至少2003年的Mozilla版本)都尊重这一点.
>如果compareFunction(a,b)大于0,则将b排序为低于a的索引.
示例代码
var sorted_categories = original.category.sort(function (one, other) {
//a - b is
// 0 when elements are the same
// >0 when a > b
// <0 when a < b
return one.elements.length - other.elements.length;
});
内容总结
以上是互联网集市为您收集整理的如何根据javascript中嵌套数组的长度对对象数组进行排序全部内容,希望文章能够帮你解决如何根据javascript中嵌套数组的长度对对象数组进行排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。