给object数组进行排序(排序条件是每个元素对象的属性个数)
Posted 北磬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给object数组进行排序(排序条件是每个元素对象的属性个数)相关的知识,希望对你有一定的参考价值。
从汤姆大叔的博客里看到了6个基础题目:本篇是第3题 - 给object数组进行排序(排序条件是每个元素对象的属性个数)
解题关键:
1、Array.sort的用法
2、object的属性数量的统计
解点1:Array.sort的用法
Array.sort可以为数组指定一个排序规则,一般用如下格式进行指定,代码如下:
var arr = [10,6,0,4]; console.log( arr.sort() ); //按字符排序 0,10,4,6 console.log( arr.sort( function(a,b) { //指定排序方式 0,4,6,10 return a - b; } ) )
解点2:object属性的数量统计
Object.getPropertyNames(obj).length
最终实现的代码如下:
var person = { name:\'Schoolar\', age:35, like:\'javascript\' }, cat = { name:\'kitty\', food:\'fish\' }, car = { door:\'four\' }, objArray = [cat, car, person]; function sortObjectArray(objArray) { objArray.sort( function(a,b) { return Object.getOwnPropertyNames(a).length - Object.getOwnPropertyNames(b).length; } ); } sortObjectArray( objArray ); objArray.forEach( function(obj) { console.log( obj ); } );
此题解答完毕!
以上是关于给object数组进行排序(排序条件是每个元素对象的属性个数)的主要内容,如果未能解决你的问题,请参考以下文章
排序对象数组时出错无法分配给对象'[object Array]'的只读属性'2'