【问题标题】:how to alphabetically order strings in typescript如何在打字稿中按字母顺序排列字符串
【发布时间】:2021-03-22 00:54:35
【问题描述】:

我有以下 md-collection 加载电子邮件列表如下

<md-collection-item repeat.for="u of user" class="accent-text">
                            <div class="row">
                                <div class="col">
                                    <p>${findEmailAddress(u.email)}</p>
                                </div>          
                            </div>
                        </md-collection-item>

在打字稿中

findEmailAddress(userId: string) {
         return ((this.Persons|| []).find(x => x.userId == userId) || {}).email;
    
    }

它获取该用户的电子邮件并将其显示为

peaches@test.com
apple@test.com
pineapple@test.com
banana@test.com

我怎样才能让它按字母顺序加载电子邮件

apple@test.com
banana@test.com
peaches@test.com
pineapple@test.com

我尝试使用类似的排序

let test =((this.Persons|| []).find(x => x.userId == userId) || {}).email;
 return test.sort() ---> but it fails on sort and says "sort does not exists on type string"

【问题讨论】:

  • 您的findEmailAddress(userId) 函数返回单个用户的电子邮件,而不是所有用户的电子邮件列表,因此无需排序。

标签: javascript typescript aurelia alphabetical


【解决方案1】:

Array#find函数返回第一个满足条件的元素。

所以在你的代码中

let test =((this.Persons|| []).find(x => x.userId == userId) || {}).email;

test 将是 string,而不是 array 类型,这就是您收到当前错误的原因。

要显示排序后的电子邮件地址,您应该对数据源user 进行排序。

我假设user 是数组类型。所以在这种情况下,您可以按email 对其进行排序。

const sorted = user.sort((a, b) => a.email - b.email)
<md-collection-item repeat.for="u of sorted" class="accent-text">

【讨论】:

    【解决方案2】:

    在您的示例中,测试返回一个字符串而不是一个数组。必须对字符串数组调用 Sort。

    你必须首先让这个字符串成为一个数组。假设测试包含一个换行符分隔的电子邮件地址列表,您可以尝试使用换行符进行拆分,然后按如下方式排序:

    test.split("\n").sort();
    

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多