排版错误

我有数组。

let a = [{id: "-1", name: "a"}, { id: "0", name: "b" }, { id: "1", name: "c" }]

我做了下面的工作。

a = a.sort(x => <number>x.id);

但由于某些原因,我有一个项目与 id = "0" 在最后一个位置。这是什么原因,如何解决?

我还试着改变 id = "0" -> id = "-2" 但现在如果我再次排序,我看到的顺序如下。-1, -2, 1. 有什么问题吗?

也许是在将一种类型转换为另一种类型时出了错误?我的意思是 stringnumber

解决方案:

Typescript不是一种运行时语言,它编译成JS。做一个TS转码只会指示TS编译器处理x.id a a number 它不会执行运行时的投射。

你想要的是做一个JS投射到数字,如 Number(x.id)

另外,为了正确排序,你需要比较两个项目。

a.sort((x, y) => Number(x.id) - Number(y.id))

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/889.html

(0)
上一篇 2022年6月29日 下午4:01
下一篇 2022年6月29日 下午4:01

相关推荐

发表评论

登录后才能评论