简体   繁体   English

按javascript / jquery中关联数组/对象的值长度(从最长到最短)排序

[英]Sorting associative arrays/object in javascript/jquery by the length of their values (longest to shortest)

What would be the best way to sort an associative array/object using javascript/jquery by the length of their values? 使用javascript / jquery按值长度对关联数组/对象进行排序的最佳方法是什么? Longest value to shortest value, if the value is the same then alphabetical. 最长值到最短值,如果值相同,则按字母顺序。

eg result: 例如结果:

     name["mike"]    = "Sanders"
     name["mary"]    = "Smith"
     name["sharon"]  = "Chan";
     name["Xu"]      = "Wang";
     name["John"]    = "Ho";

I have looked and looked and could not find a similar question. 我看了看又找不到类似的问题。

Thanks 谢谢

Try this 尝试这个

var name= [];
name.push({ key: 'mike', value: 'Sanders' });

name.sort(function(a,b) {

   var aVal = a.value.toString();
   var bVal = b.value.toString();
   if (aVal.length === bVal.length) {
     return aVal.localeCompare(bVal);
   } else {   
     return aVal.length - bVal.length;
   }
});



alert(name[0].value); //Ho
alert(name[1].value); //Chan
alert(name[2].value); //Wang
alert(name[3].value); //Smith
alert(name[4].value); //Sanders

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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