【发布时间】:2015-10-11 13:20:06
【问题描述】:
我必须编写一个函数,对包含数字和字符串的数组进行排序。
例如:
uSort([3,"2", 4,1,"a","c","b"]) // -> ["a","b","c",1,"2",3, 4].
这是我迄今为止尝试过的:
function uSort(arrayOfChars){
var array = [];
for (i = 0; i < arrayOfChars.length; i++) {
if (typeof(arrayOfChars[i]) === '' ){
array.unshift(arrayOfChars[i]); }
else {
array.push(arrayOfChars[i]);
};
};
return array.sort();
};
但是结果是错误的:
uSort([3,"2", 4,1,"a","c","b"]) // -> [1,"2",3, 4,"a","b","c"].
我现在无法弄清楚我的代码有什么问题。
【问题讨论】:
-
那么数字前的字符串?
-
那是正确的 adeneo。
-
typeof永远不会返回''。 -
您不应该取消筛选您正在排序的数组,将它们移到末尾将使您在排序时产生零差异。
-
您需要编写自己的自定义排序方法。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript arrays string sorting numbers