这里的sort(function(a,b){})a,b都是数组里的引用的方式,无法复制给其他变量后进行replace操作
下面就是样例,希望依据去空格后的字符数量排序,结果sort里传入的值无法完成replace操作,最后结果是包含空格后的字符数量排序。
<html>
<head>
<script>
var arr = ['c c','d ddd','eee'];
arr.sort(function(a,b){
return pare(a)>pare(b)?1:-1;
});
function pare(value){
value=value.replace(' ','');
value=value.replace(' ',''); //去除全角空格
return value.length;
}
alert(arr);
</script>
</head>
<body>
</body>
</html>
你用value=value.replace(' ','');只能去掉一个空格,去掉所有空格要用正则。
还有就是arr.sort这个函数不会改变arr,排序结果要单独存一下。
var arr = ['c c', 'd ddd', 'eee'];
var result = arr.sort(function (a, b) {
return pare(a) > pare(b) ? 1 : -1;
});
function pare(value) {
value = value.replace(/\s/g, "");
// value = value.replace(' ', ''); //去除全角空格
return value.length;
}
alert(result);
这样就可以了
这个是js的数组辅助函数,类似于foreach(funcation(t){})