js坑之数字型字符串比对只比较第一位数字

article/2025/3/2 0:18:51

这是我今天接手项目里面求最大值的一段代码:

            var dataY = this.getDataY(); // 判断点击类型if (this.datatype == '0') {var max = 0;dataY.forEach(x => {if (x > max) {max = x;}});}

其中dataY是一个数组,最大值为max,咋一看好像没啥问题。

但是这个数组里面装的是数字型字符串,于是神奇的事情就发生了

现在我还原一下场景:

        let max = 0let arr = ['22', '15', '12', '11', '11', '5', '3', '2', '2', '0']arr.forEach(item => {if (item > max) {max = item}console.log('item', item, 'max', max)})console.log('arr', arr, 'max', max);

控制台的打印结果是:

可以看到,最大值是5。为什么?不应该是22吗?字符串比较不是会默认隐式转换吗?

分析: 

可以看到前五次的打印结果都是22,到了第六次,就变成了5,且往后的五次打印结果都是5。

那么问题肯定出在第六次,即22和5比较时,浏览器选择了5而不是22

果真如此吗?于是我去控制台又分别对比了 5 和 22 ,5 和 49 , 5 和 50,5 和 51结果如下:

根据打印结果,可得出一下结论

js中两个数字型的字符串比较大小时,只会比较第一位数的大小

补充:然后我试着比较数字类型数字型字符串

发现一切正常

看来字符串和数字比对时,会隐式转换后对比

如何解决:

用Number(),paserFloat(),paserInt(), + , 转换成数字再进行比对就行了

 查看改过之后的值:

PS:其实求最大值可以通过Math.max(val1,val2)去做

比如以下这行代码:

       let arr = ['22', '15', '12', '11', '11', '5', '3', '2', '2', '0']let max = Math.max(...arr)console.log('max',max)

运行结果为数字型的22

 


http://chatgpt.dhexx.cn/article/OKWTD3rw.shtml

相关文章

JS比较字符串大小

JavaScript中可以直接使用大于(>)、小于(<)运算符进行字符串大小比较。此方法会根据第一个不同的字符的ascii码进行比较。 例: (function(){console.log(123>5); // 输出&#xff1a;false 第一个字符ascii相比较 1 < 5console.log(5>6); // 输出&#xff…

JavaScript 中的字符串比较

今天收到一个测试的BUG&#xff0c;自己重测了下&#xff0c;没问题&#xff0c;测试当我面测试了下&#xff0c;发现的确是问题的&#xff0c;问题根源是俩个input框value的值做比较&#xff0c;我console.log(val1); console.log(val2);console.log(val1>val2);值分别是 3…

JS字符串数值比较大小问题

对于JS字符串的比较大小问题&#xff1a;如果比较的字符串位数一致&#xff0c;没有问题。但是如果比较的位数不一致&#xff0c;就会以位数的第一位开始比较&#xff01; let a 62; let b 41; console.log(a>b) // true;let aa 6; let bb 41; console.log(aa>bb) /…

js字符串的比较

字符串的比较规则&#xff1a; 逐字符比较&#xff0c;先拿各自的第一个字符比较&#xff0c;第一个字符相等了&#xff0c;再拿各自的第二个字符比较 <script>var a11var b9console.log(a>b)// 字符串是逐字符进行比较的,输出为flase&#xff0c;因为1和9比完大小就…

JS中比较

一、类型介绍 1、原始值 包含&#xff1a;undefined、null、布尔值、数字和字符串 2、对象 包含&#xff1a;数组和函数 3、包装对象 String、Number、Boolean // 一个字符串、数字和布尔值 let s "test", n 1, b true; let S new String(s); // …

【3D游戏建模全流程教学】使用3dmax制作教堂场景

本文分享了使用3dmax制作教堂场景的流程&#xff0c;并解释V-Ray的渲染过程。 01场景制作 在网站中收集许多的参考图像&#xff0c;然后使用平面、立方体和圆柱体等基本形状来制作场景。再制作基础照明以了解场景的构图和总体外观&#xff0c;从视口制作预览动画。 下一步是创…

3D建模场景有哪些物理特性?

由于3D建模场景的材质渲染是基于物理的特性转化而来&#xff0c;3D建模场景的导入引擎也为此引入具有物理单位的照明参数&#xff0c;3D建模场景引擎使用基于物理的渲染和遵循真实光线的传播&#xff0c;以全局照明为目的&#xff0c;而3D建模场景工程师需要使用这些功能&#…

OpenGL,WebGL基于HTML5/WebGL的建模及构建3D场景

一、OpenGL和WebGL WebGL基于OpenGL ES,它缺少常规OpenGL具有的许多功能,例如仅支持顶点和片段着色器。OpenGL具有WebGL所不具备的功能,例如几何体着色器,镶嵌细分着色器和计算着色。在PC端web应用中,前端的webgl是通过js语句调用的是OpenGL部分接口,在移动设备是调用OpenGL ES…

3d游戏场景建模设计师需要学哪些软件?

一 跳出软件层面理解软件,我们要牵着软件的鼻子走。 关于3D建模软件有哪些,这个问题,我在下面会详细的讲解,一堆,会看的你眼疼,这个问题不着急,淡定。首先我需要讲的是跳出软件这个层面来理解软件,放大我们的格局来学习软件,只有理解了更大的层面,才能更好的去知道怎…

用3Ds Max做三维场景建模

今天的3ds max教程是三维场景建模中关于对场景进行布局和建模,了解如何使用3ds Max和Marmoset创建一个世界末日的立体模型,这是建模技能的完美组合展示。 场景布局和建模. 本教程将指导您完成创建diorama的过程,您将能够在Web浏览器中进行交互。本教程将分为三个部分。我将…

3D 游戏角色建模和场景建模哪个好

建模师&#xff0c;依据原画师的设计稿件进行三维立体模型的创造&#xff0c;对应原画设计中的角色设计、场景设计、道具设计&#xff0c;建模工作也有角色建模、场景建模、道具建模之分。很多人就问了&#xff1a;“游戏角色建模和场景建模哪个好&#xff1f;学哪个赚钱多&…

动画设计与制作——3D Max场景建模《我的家》V-Ray 4.1

《动画设计与制作》 下载源文件资源包&#xff08;文章结尾有说明&#xff09;&#xff1a; https://download.csdn.net/download/weixin_48388330/76484706 所使用的工具软件及环境&#xff1a; 3ds Max 2020、V-Ray 4.1 一、实验目的&#xff1a; 熟练使用3ds Max 2020&a…

3D场景建模,次世代游戏模型怎么被做出来?

与传统游戏相比&#xff0c;次世代游戏以精简的面数表达出高精度模型效果&#xff0c;各种材质和纹理贴图根据写实效果展示&#xff0c;注重质感表现。 次世代游戏模型怎么被做出来&#xff1f; 次世代游戏角色制作通过颜色贴图、高光贴图、法线贴图、自发光贴图多种贴图丰富…

游戏行业中3D设计都有哪些职位?3D场景建模该如何学习?

游戏行业中的3D美术设计呢&#xff0c;分为场景设计&#xff0c;以及角色设计。 3D场景建模师 场景则是游戏中的环境、机械、道具等死物。场景开始对美术的要求没有那么高&#xff0c;只要熟练运用3D软件就行了。 逐步掌握游戏场景元素设计理念&#xff0c;不同风格游戏的制…

有哪些知识是学习3D场景建模必备的?

1.场景建模的知识点 视角范围&#xff1a;视角范围是玩家在游戏中所能看到的游戏场景的范围&#xff0c;视角是随着玩家的移动不停变换的&#xff0c;基于这点才有了场景分块的必要性。 场景分块&#xff1a;在游戏中不管你的视角在哪个位置&#xff0c;可能你的视角方向上只能…

游戏建模:模型场景制作过程分享

创建一个有趣、精细的3D艺术模型本身也是有挑战性的。把它们放在一起,为讲述故事的3D电影组建一个逼真的环境是更困难的工作。 如果目标是这个环境中的一个单独静态图像,那么2D 插画将会是一个更具成本效益、更好效果地替代3D渲染的选择。但是,3D领域的过人之处是通过动画将…

3d场景建模什么水平能找到工作?次世代游戏场景建模需要学多久

3d建模学多久这个问题不是很好回答&#xff0c;谁才知道你的实力怎么样&#xff0c;努力的态度怎么样&#xff0c;如果你三天打鱼两天晒网&#xff0c;我估计一万年也学不会。如果你全力以赴认真的学&#xff0c;五六个月就能很好的玩转3D建模&#xff0c;当然如果你想达到大神…

如何自学3D游戏场景建模和设计?

游戏行业毕竟是靠作品说话的&#xff0c;想做场景美术自然就得把场景“搭”得足够好&#xff0c;当然&#xff0c;这里说的“搭”指的是包括场景建模、材质、特效、渲染等流程在内的整个场景美术制作流程&#xff0c;场景美术这个范畴很宽泛的。 这个**“搭得好”**的标准究竟…

3D场景建模学习必备的基础知识

1.场景建模的知识点 视角范围&#xff1a;视角范围是玩家在游戏中所能看到的游戏场景的范围&#xff0c;视角是随着玩家的移动不停变换的&#xff0c;基于这点才有了场景分块的必要性。 场景分块&#xff1a;在游戏中不管你的视角在哪个位置&#xff0c;可能你的视角方向上只能…

3D建模场景怎么做?

在开始做3d场景之前,我绘制了一些草图。选好需要的草图后(图01),我用3ds max从标准几何体开始制作模型,还使用了像lathe,bevel以及unwrap uvw这类的基本修改器。 用不同的参数值进行复制(图02)。为了完成这个项目,一些额外的模型也是必须的(图03)。 图01 图02 图…