首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何显示以大写字母开头的字符串列表

如何显示以大写字母开头的字符串列表
EN

Stack Overflow用户
提问于 2017-04-14 00:19:21
回答 4查看 73关注 0票数 0

我在这里有点力不从心,我希望这真的是可能的。

我希望能够调用一个函数来重新排列我的列表,以便以大写字母开头的项目排在第一位

我已经通过stackoverflow和googling搜索了一段时间,但什么也没有找到。有什么想法吗?

例如,var item=香蕉、苹果、芒果、凤梨、甜瓜

该函数应将Apple Mango和Melon放在开头,因为它们以大写字母开头

EN

回答 4

Stack Overflow用户

发布于 2017-04-14 00:25:05

代码语言:javascript
复制
var items = ["banana", "Apple", "Mango", "pineapple", "Melon"]

items.sort();

alert(items)

您可以在此fiddle中看到它的实际效果

这样做的原因是在ascii table中,大写字母排在小写字母之前。因此,当您对列表进行排序时,它会根据字符串的ascii值进行排序。

票数 3
EN

Stack Overflow用户

发布于 2017-04-14 00:29:14

您可以只查看第一个字符,并检查它是否为小写字母,然后将其排序到末尾。它不会按整个字符串对列表进行排序。

这个提议对Array#sort使用了一个排序函数,该函数返回一个值进行排序。该值表示两个元素之间的关系。

代码语言:javascript
复制
var items = ['banana', 'Apple', 'Mango', 'pineapple', 'Melon', 'Apricot'];

items.sort(function (a, b) {
    return (a[0] === a[0].toLowerCase()) - (b[0] === b[0].toLowerCase());
});

console.log(items);

票数 2
EN

Stack Overflow用户

发布于 2017-04-14 00:31:04

这是您可以自定义的另一种方法。

代码语言:javascript
复制
startsWithCapitalLetter = function(string) {
    return (string.charAt(0).toUpperCase() === string.charAt(0));
}

var items = ['banana', 'Apple', 'Mango', 'pineapple', 'Melon'];
var upper = [];
var lower = [];

for(var i=0; i<items.length; i++) {
    if (items.hasOwnProperty(i)) {
    if (startsWithCapitalLetter(items[i])) {
        upper.push(items[i]);
    } else {
        lower.push(items[i]);
    }
  }
}

var sorted = upper.concat(lower);
console.log(sorted);

https://jsfiddle.net/jzvx2a12/1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43397240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档