javaScript中为什么字符串相减是NAN Why is “string” - “string” NaN?

发现这个问题的背景是后端返回数据根据组排序,然后每个组中的对象按照某个字段进行排序显示

一开始是这样的

 

 

并不生效

修改后

 

 

 

 

排序生效。

可以看到只是把入参提取出变量,就可以了,那么为什么之前写的不能识别

原因就出在 a.code-b.code 这个字符串下相减的操作是一个 NAN 导致sort 入参错误

 

 a.code 和b.code 两个属性都是字符串,根本原因出在 "-" 减号。减号操作得数最终都会变成数组,这个NAN也会被判别为数字

参考链接:https://www.codenong.com/37301296/

 

 

 

所以在排序时 比较字符串得时候不可以直接相减。

 

posted @ 2023-01-17 11:44  Timeouting  阅读(308)  评论(0编辑  收藏  举报