重构数组的算法

如何把 [a,b,a,a,c,b,c],重组成[a,a,a,c,c,b,b]的排列顺序,主要是需要相同的元素要排列在一起

阅读 4k
4 个回答
if (主要是需要相同的元素要排列在一起){
    var a = ['a','b','a','a','c','b','c'];
    a.sort(); //["a", "a", "a", "b", "b", "c", "c"]
} else if (把 [a,b,a,a,c,b,c],重组成[a,a,a,c,c,b,b]的排列顺序){
    不知道这样排是为了啥。如果固定是这样。就先排序。
    把特定的元素排在特定的地方。比如说把'b'提出来放最后去就行了。
} else ...
 var arrs=['a','b','a','a'];
 arrs.sort();
 alert(arrs)

解释一下sort()的原理:sort()可接受一个比较函数并根据这个比较函数对数组元素进行排列,如果不使用比较函数作为参数,将默认对数组元素按字符编码进行排序,可以参考这位大神的文章:
https://segmentfault.com/a/11...

var arr = ['a','b','a','a','c','b','c'];
alert(arr.sort());

楼下正解,sort方法自带你的需求

推荐问题
宣传栏