我想使用JQuery或JavaScript按姓氏的字母顺序对全名进行排序,但在循环和分割中不断丢失。有人可以帮忙吗?
var names = ["Adam Benson", "Clare Donaldson", "Ben Adams", "Donald Clarkson"];
感谢和抱歉,这似乎是一个非常简单的问题!
答案 0 :(得分:2)
借助 Array#sort
, String#split
和 String#localeComapre
方法做到这一点。
var names = ["Adam Benson", "Clare Donaldson", "Ben Adams", "Donald Clarkson"];
// sort array with custom functions
names.sort(function(a, b) {
// compare lastname part for sorting
return a.split(' ')[1].localeCompare(b.split(' ')[1]);
})
console.log(names);

仅供参考:如果名称包含中间名部分,请将name.split(' ')[1]
更改为name.split(' ').pop()
以获取数组中的最后一个元素(即姓氏)。
答案 1 :(得分:2)
您可以使用didSelectItemAtIndexPath
函数来实现此目的,该函数按空格分割值并比较结果数组的最后值:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("Inside didSelectItemAtIndexPath")
}

如果提供的名称中没有空格,您可能还需要为此代码添加一些验证。