首页 > 编程语言 >javaScript中为什么字符串相减是NAN Why is “string” - “string” NaN?

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

时间:2023-01-17 11:56:33浏览次数:45  
标签:code string NaN javaScript NAN 字符串 排序 相减

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

一开始是这样的

 

 

并不生效

修改后

 

 

 

 

排序生效。

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

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

 

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

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

 

 

 

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

 

标签:code,string,NaN,javaScript,NAN,字符串,排序,相减
From: https://www.cnblogs.com/Timeouting-Study/p/17057493.html

相关文章

  • 10.Requests【接口请求】requests模拟QuertString查询字符串传参
    一、前言无论是get,还是post请求,我们在模拟接口请求中往往会遇到url中包含形如?name=xiaoming&age=18这种的参数,这种参数是通过url传递到服务器的,像这种参数怎么通过reque......
  • CF1748B-Diverse Substrings
    长度为n的字符串,求出子串(只能从头尾依次删字符来得到子串)中,相同字符出现的最高次数小于等于不同字符的个数,这样的子串的个数以1~n个字符作为起点,枚举终点的位置来判断每种......
  • StringBuilder类
    StringBuilder类一、结构剖析一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步(StringBuilder不是线程安全的)。该类被设计用作StringBuffer......
  • 重载重写、封装继承多态、String、==和equlas、Integer
    (1)重载和重写的区别:1.重载:方法名相同,参数类型、个数、顺序不同,返回值、访问修饰符可以不同;发生在编译时;2.重写:方法名、参数列表必须相同;返回值、异常范围小于等于父类,访问修......
  • [JavaScript]前端解析cookie为对象
    参考解析页面传参varcookie_str=document.cookievarcookie_arr=cookie_str.split(";")varcookie_obj={}for(vari=0;......
  • JavaScript验证API
    验证API两个方法:checkValidity():如果input元素中的数据是合法的返回true,否则返回false;setCustomValidity():设置input元素的validationMessage属性,用于自定义错误提示......
  • JavaScript学习笔记—函数中的this
    this函数在执行时,JS解析器每次都会传递进一个隐含的参数,即thisthis会指向一个对象,所指向的对象会根据函数调用方式的不同而不同(1)以函数形式调用时,this指向的是window(2......
  • matplot.pylab:TypeError: int() argument must be a string, a bytes-like object or
    Traceback(mostrecentcalllast):File"/home/lhw/Gradute/jyq/eval/examples/lpipSeq/test.py",line9,in<module>frommatplotlib.pylabimport*File......
  • JavaScript 回调函数
    函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回;回调函数回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当......
  • JavaScript 请求服务端接口
    JavaScript中请求服务端接口的代码实现可能会因为使用的方法而有所不同。1、使用XMLHttpRequest:varxhr=newXMLHttpRequest();xhr.open("GET","https://example.c......