[英]Sort multiple array key's in ascending and descending order, string with number
我有一个JavaScript对象数组:
这不是重复的问题。 因为,我有一个具有2个键( key
, count
)的对象数组。 我想排序, key
升序( 字符串 )和value
降序( 数字 )。
var array = [
{"count":7,"key":"a"},
{"count":10,"key":"b"},
{"count":5,"key":"c"},
{"count":10,"key":"a"},
{"count":3,"key":"d"}
];
所需输出:
var array = [
{"count":10,"key":"a"},
{"count":10,"key":"b"},
{"count":7,"key":"a"},
{"count":5,"key":"c"},
{"count":3,"key":"d"}
];
var array = [{"count":7,"key":"a"},{"count":10,"key":"b"},{"count":5,"key":"c"},{"count":10,"key":"a"},{"count":3,"key":"d"}]; console.log(array.sort((a, b) => (b.count - a.count)));
key
升序排列
count
为降序
我已经使用array.sort((a, b) => (b.count - a.count))
方法来对计数进行排序。 但是,无法弄清楚如何对两个键进行排序。
您必须使用逻辑||
运算符与localeCompare
函数结合使用。
||
如果b.count - a.count
结果为零,则运算符仅考虑第二个分量。
var array = [{"count":7,"key":"a"},{"count":10,"key":"b"},{"count":5,"key":"c"},{"count":10,"key":"a"},{"count":3,"key":"d"}]; console.log(array.sort((a, b) => b.count - a.count || a.key.localeCompare(b.key)));
尝试跟随
var array = [{"count":7,"key":"a"},{"count":10,"key":"b"},{"count":5,"key":"c"},{"count":10,"key":"a"},{"count":3,"key":"d"}]; console.log(array.sort((a, b) => { if(a.count === b.count) return a.key.localeCompare(b.key); return b.count - a.count; }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.