繁体   English   中英

按属性对对象数组进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM