如何使用JS,在一个数字类型的数组里,查找最大(或最小)数呢?
以下介绍四个方法。
<强> 1。不使用任何库函数强>
代码如下:
函数findMax1 (arr) { 让结果=0; 如果(Array.isArray (arr)) { (让我=0;我& lt;arr.length;我+ +){ 结果=arr[我]比;结果& # 63;加勒比海盗[我]:结果; } 返回结果; 其他}{ 控制台。错误(“arr参数不是一个数组”); 返回; } } >之前解释:
利用一个变量结果来存储最大值。遍历待查找的数组,如果当前遍历的元素大于结果,就把这个元素赋值给结果。
<强> 2。利用Array.reduce() 强>
代码如下:
函数findMax2 (arr) { 让结果=0; 如果(Array.isArray (arr)) { 结果=加勒比海盗。减少((a, b)=比;{ 返回一个在b & # 63;a: b; }, 0); 返回结果; 其他}{ 控制台。错误(“arr参数不是一个数组”); 返回; } } >之前解释:
减少方法就是通过一个函数,针对一个累加器(蓄电池)和数组中的每一个元素,将一个数组最终减少到一个值。
减少接受两个参数:
第一个是回调,就是那个前面提到的那个函数。它有四个参数:
<李>蓄电池:累加器,它是上次运行回调的结果。如果提供了initialValue,那么第一次就是initialValue;李> <李> currentValue:当前遍历的数组的元素;李> <李> currentIndex:当前遍历的数组的元素的指数,从0开始。如果提供了initialValue,那就从1开始,李> <李>数组:当前应用减少的数组。
李>第二个是initialValue,是一个初值,作为第一次运行调函数的第一个实参,这个是可选的。这里要注意一下,如果这个参数不提供,并且应用在一个空数组上,是会报错的。
那么上面代码的意思就是,每次遍历数组进行比较,大的就留下来,即蓄电池,并将其用作下一次和数组元素的比较,最后只留下这一个值,即最大值。
<强> 3。利用应用和Math.max() 强>
代码如下:
函数findMax3 (arr) { 让结果=0; 如果(Array.isArray (arr)) { 结果=Math.max。应用(null, arr); 返回结果; 其他}{ 控制台。错误(“arr参数不是一个数组”); 返回; } }解释:
应用解释稍显复杂,不作进一步的解释。
它接受两个参数,第一个是thisArg,第二个是argsArray。两个都是可选的。此处简单来说,就是使用一个函数时,参数以数组的方式传递进去。
<强> 4。只用Math.max() 强>
代码如下:
函数findMax4 (arr) { 让结果=0; 如果(Array.isArray (arr)) { 结果=Math.max arr (…); 返回结果; 其他}{ 控制台。错误(“arr参数不是一个数组”); 返回; } } >之前解释:
基于上一个解法的思路,在ES6中,有一个扩展运算符(…),可以将一个数组中的元素拆出来,组成一个用逗号分隔的序列。刚好满足Math.max()函数的需求。
在给大家介绍一下JS之数,数学和数组的相关知识点
1,数量对象。
创建数量对象的方式:
方式1:
var变量=新号码(数字)
方式2:
var变量=数字;
常用的方法:
toString()把数字转换成指定进制形式的字符串。(输入数字几,就转换为几,number.toString (2)
toFixed()指定保留小数位,而且还带四舍五入的功能。
2、数学
数学对象常用的方法:
装天花板向上取整
地板()向下取整
随机()随机数方法//产生的伪随机数介于0和1之间(含0,不含1),
轮四舍五入
3,数组数组对象:
创建数组的方式1:
var变量名=new Array ();创建一个长度为0的数组。
方式2:
var变量名=new Array(长度)创建一个指定长度的数组对象。
JS求数量类型数组中最大元素方法