如何对特殊数组排序?
例如: var arr = ['A','B','4','C','1','D','7','8'],排序之后要显示成A1B4C7D8
leavens
浏览 1292回答 3
3回答
-
Xyino_Snake
我不懂JavaScript。只懂C++。但算法思路很简单。
这样。先把字母符号抽取出来,再把数字符号抽取出来。分别排序,再一一对应,合起来。绝对不难。
C语言的话要依靠ctype.h里的字符类别判断函数。Java我不知道。
-
ruibin
var arr = ['A','B','4','C','1','D','7','8', '9'];arr.sort();var num_set = [], str_set = [];for (var i = 0; i < arr.length; i ++) { if (arr[i].charCodeAt(0) < 65) { num_set.push(arr[i]); } else { str_set.push(arr[i]); }}console.log(num_set);console.log(str_set);var ret = [];for (var i = 0, j = 0; i < num_set.length, j < str_set.length; i ++, j ++) { ret.push(str_set[j] + num_set[i]);}console.log(ret);没有直接排序法,有间接排序法。
打开App,查看更多内容