[英]Sort array of objects by property
大家好,我需要一个函数,以便可以按一定的属性值按字母顺序对对象数组进行排序。
假设我有这个数组:
var myObj = [{Name: 'John'},
{Name: 2.10},
{Name: 'Andrew'},
{Name: 10},
{Name: 2.101}
];
结果应为2.10、2.101、10,“ Andrew”,“ John”。 我需要在我的程序中进行这种排序,因为Name属性的名称可以是'John'或IP(例如1.0.0.14)或MAC地址(97948453855)。
我已经进行了一些排序,但是对于字符串和数字似乎都无法完美地工作。
谢谢!
您可以检查字符串,并将增量用作第一个结果部分,或者采用数字增量或最后进行字符串比较。
var array = [{ Name: 'John' }, { Name: 2.10 }, { Name: 'Andrew' }, { Name: 10 }, { Name: 2.101 }]; array.sort(function (a, b) { return (typeof a.Name === 'string') - (typeof b.Name === 'string') || a.Name - b.Name || a.Name.localeCompare(b.Name); }); console.log(array);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.