TypeScript 对数组进行排序

2023-12-20

我一直在试图找出我在打字稿中遇到的一个非常奇怪的问题。它将内联布尔表达式视为第一个值的类型,而不是完整的表达式。

因此,如果您尝试如下简单的操作:

var numericArray:Array<number> = [2,3,4,1,5,8,11];

var sorrtedArray:Array<number> = numericArray.sort((n1,n2)=> n1 > n2);

TryIt http://www.typescriptlang.org/Playground/#src=var%20numericArray:Array%3Cnumber%3E%20=%20%5B2,3,4,1,5,8,11%5D;%0A%0Avar%20sorrtedArray:Array%3Cnumber%3E%20=%20numericArray.sort%28%28n1,n2%29=%3E%20n1%20%3E%20n2%29;%0A%0A

您将在排序方法中收到错误,指出参数与调用目标的任何签名都不匹配,因为您的结果是数字而不是布尔值。我想我错过了一些东西,因为我很确定 n1>n2 是一个布尔语句。


Numbers

对数字进行排序时,可以使用紧凑比较:

var numericArray: number[] = [2, 3, 4, 1, 5, 8, 11];

var sortedArray: number[] = numericArray.sort((n1,n2) => n1 - n2);

i.e. -而不是<.

其他类型

如果您要比较其他内容,则需要将比较结果转换为数字。

var stringArray: string[] = ['AB', 'Z', 'A', 'AC'];

var sortedArray: string[] = stringArray.sort((n1,n2) => {
    if (n1 > n2) {
        return 1;
    }

    if (n1 < n2) {
        return -1;
    }

    return 0;
});

Objects

对于对象,您可以根据属性进行排序,请记住上面有关能够简写数字类型的信息。无论类型如何,下面的示例都有效。

var objectArray: { age: number; }[] = [{ age: 10}, { age: 1 }, {age: 5}];

var sortedArray: { age: number; }[] = objectArray.sort((n1,n2) => {
    if (n1.age > n2.age) {
        return 1;
    }

    if (n1.age < n2.age) {
        return -1;
    }

    return 0;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript 对数组进行排序 的相关文章

随机推荐

  • 自定义元素选择器

    有没有办法用 CSS 选择所有自定义元素 我想让所有自定义元素默认为块元素 大多数浏览器默认使它们内联 然后根据需要覆盖它 我的规则可能看起来像这样 custom display block 所有自定义元素在标准中都有破折号 因此我可以利用
  • WPF 中的错误提供程序

    我正在查看工具箱中的 WPF 组件 但找不到 2005 2008 中出现的错误提供程序 被移除了吗 the 错误提供者 http msdn microsoft com en us library system windows forms e
  • 当我们切换到夏令时并返回时处理日期

    我想用R进行时间序列分析 我想制作一个时间序列模型并使用 timeDate 和 Forecast 包中的函数 我有 CET 时区的日内数据 15 分钟数据 每小时 4 个数据点 3 月 31 日实施夏令时 我丢失了通常拥有的 96 个数据点
  • 正则表达式:两个匹配之间的负向预测

    我正在尝试构建一个类似这样的正则表达式 match word exclude specific word match word 这似乎适用于消极的前瞻 但当我遇到这样的情况时 我遇到了问题 match word exclude specif
  • Android 如何在PrimaryClipChanged 上从剪贴板获取字符串?

    我正在尝试使用以下侦听器将文本复制到剪贴板中 import android content ClipboardManager OnPrimaryClipChangedListener import com orhanobut logger
  • 性能方面 MVC 比 ASP.NET 中的 Web 窗体更好吗

    我们将在 ASP NET 中开发一个网站 那么是使用 MVC 还是 Web 表单更好呢 这取决于您想要建立什么样的网站以及您创建网站的知识和经验 如果您了解自己的知识并且对自己 接近金属 工作的能力 事实上 充满信心 我想您可以使用 ASP
  • 如何在 HQL 中转义冒号?

    我的查询的条件部分如下 where foo bar like 查询将执行但没有结果 我认为这是因为冒号 因为它是 HQL 中的保留字符 那么我怎样才能在不发送的情况下逃脱它 作为我的查询的参数 我已经用过 and 没有成功 我找到了一个解决
  • Python:filter(函数,序列)和map(函数,序列)之间的区别

    我正在阅读 Python 文档 以真正深入了解 Python 语言 并遇到了过滤器和映射函数 我以前使用过过滤器 但从未使用过映射 尽管我在 SO 的各种 Python 问题中都看到过这两种情况 在阅读了 Python 教程中的相关内容后
  • 使用@Factory和@DataProvider进行TestNG

    我对 TestNG 和 Java 编程非常陌生 我对一起使用 Factory 和 DataProvider 有疑问 我想测试多次提交网络表单 每次使用不同的输入数据 我有以下代码 public class SolicitudEmpleo e
  • Chart.js:在饼图之外显示标签

    图表 js 2 6 0 我需要渲染一个如下所示的图表 始终显示所有工具提示不是可接受的方式 因为它们不会以正确的方式呈现 不幸的是我还没有找到解决方案 我已经尝试过件标签插件 但这有同样的问题 因为它的标签重叠 我无法隐藏某些标签 这是使用
  • 在 Rails 中保存和检索数组

    我正在 Rails 中开发电子学习 我想将一组数组保存到数据库中 目的是跟踪用户在电子学习各个部分的进度 我遇到过这个问题并回答 在数据库中存储数组 JSON 与序列化数组 https stackoverflow com questions
  • QQuickView - 无延迟/滞后地调整内容大小

    图像通常是解释某事的最简单方法 这是我遇到的问题的一个小屏幕截图 如果您查看窗口的右侧 您可以看到内容大小的调整有明显的滞后 延迟 这是一个在很多应用程序中都会发生的问题 但我想知道是否有办法在 Qt 应用程序中使用QQuickView和
  • 无法添加 gms play 服务 9.0.1,google-services 插件需要 9.0.0

    我的顶级 build gradle 中有这个 buildscript repositories jcenter dependencies classpath com google gms google services 3 0 0 allp
  • 从现有组件中创建自定义 Swing 组件

    所以 我有这个 JTexrtArea 几乎可以完美满足我的需求 唯一的问题是行距 我无法设置它 为什么不使用 JTextPane 因为 JTextArea 中的间距可以更改 而且 JTextArea 比 JTextPane 轻得多 而且我的
  • Play!Framework 中的批量 HTTP 请求

    我已经实施了当前的一组路线 例如 GET api version entity my controllers GET api version entity id my controllers POST api version entity
  • 调用/创建委托

    今天是个好日子 我注意到有两种方法可以调用 创建委托 MrDel MyDelegate new MrDel Mathmetics Method or MrDel MyDelegate Mathmetics Method 所以我的问题是这两种
  • 根据背景图像颜色自动对比文本颜色

    我正在寻找一种方法 根据名为 横幅 的 div 中背景图像的主颜色 将文本颜色更改为 000 或 fff 每个页面上的背景图像都是随机选择的 因此我需要能够自动执行此操作 我碰到JavaScript 颜色对比器 https stackove
  • NoReverseMatch django - 不是有效的视图函数或模式

    目前使用 Django 1 11 我得到一个例外 Reverse for book details not found book details is not a valid view function or pattern name Re
  • 按因子分组并返回其他列的第二低值

    我想按中的值对该数据框进行分组zipcode列 并在另一个 称为比率 列中返回second lowest率或lowest率或max rate 例如 从这个 df zipcode state county code name rate are
  • TypeScript 对数组进行排序

    我一直在试图找出我在打字稿中遇到的一个非常奇怪的问题 它将内联布尔表达式视为第一个值的类型 而不是完整的表达式 因此 如果您尝试如下简单的操作 var numericArray Array