这里主要收集一些我遇到有趣的题目,或是短小使用的tips。这里的东西一般不会展开说了,只对几个要点注释一下,并附上必要的参考。由于大部分东西是写给我自己做备忘的,可能文笔不会太流畅,大家捡重点的看吧。
题目要求写这样一个函数:接收两个参数,第一个是一个按逗号分隔的字符串,第二个是排序需要的字符位置。期待的结果是将字符串中的单词按这个字符位置排序,比如:
function sortIt('bid, zag', 2)
需要排序的字符串是'bid, zag',根据每个单词的第二个字母顺序排序(a在i前),所以排序结果将为 'zag, bid'。
思路就是首先将字符串按逗号分隔成单词数组,然后就可以利用array的sort方法了。要记得sort方法是可以接收一个比较函数来进行指定的排序的,于是就有:
function sortIt(list, n) {
return list.split(', ').sort(function(a, b) {
var p = n - 1;
return a.charCodeAt(p) - b.charCodeAt(p);
}).join(', ');
}
结合Array.prototype.sort的文档,我们知道sort字母排序需要的是Unicode值,于是找到charCodeAt这个我不常用的方法,它的作用正是返回指定位置字符的Unicode的值。
网友评论