背景: 2个数组以下 , 比如  [[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]

找最值的时候,我一开始想用两个 for 循环比较每一个数组中的每一个数组的大小,然后保留最大值(最小值),最后再把它们组成一个新数组。

//
function largestOfFour(arr) {
var maxArr,
temp=[], // .push()是操作数组
z;
for (var i = 0; i < arr.length; i++) {
z=arr[i][0]; // 重点... 用来比较、保存
for (var j = 0; j < arr[i].length-1; j++) { // j+1了,防止超出,得-1
if (arr[i][j+1] > z ){
z = arr[i][j+1];
}
}
temp.push(z);
}
console.log(temp);
} largestOfFour([[1114, 5, 321, 3], [13, 127, 18, 26], [322, 35, 37, 39], [13000, 1001, 857, 1]]);

缺少基础,写出上面的代码颇有曲折,参考了很久排序算法(主要是选择排序)才慢慢的写出来....

------

中间其实是做不出来了,于是我就百度, 查到了js 里是可以自己算最大值最小值的.....

就是 Math.max()  Math.min()

数组要放在其中使用的话,要用 apply() 才行

他们是这样举例的...

先是举例用了用 for 循环

var arr=[5,7,9,1]
// alert(Math.max(arr)) 这样是不行的。一定要这样写
function getMax(arr){
var arrLen=arr.length;
for(var i=0,ret=arr[0];i<arrLen;i++){
ret=Math.max(ret,arr[i]);
}
return ret;
}

然后是 apply()


var arr=[5,7,9,1];
function getMax2(arr){
return Math.max.apply(null,arr);
}

...

简洁了很多..很多

然后用到我的题目中呢就是这样的

function largestOfFour(arr){
var newArr = [],
temp;
for (var i = 0; i < arr.length; i++) {
temp = Math.min.apply(null,arr[i]);
newArr.push(temp);
}
return newArr;
}
largestOfFour([[1,2,3],[5,6],[9,77]]);

还阔以, 也简洁了许多..

请多指教

js 找数组中的最值的更多相关文章

  1. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  2. js对象数组中的某属性值 拼接成字符串

    js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六' ...

  3. js 从数组中随机获取一个值

    // 获取随机数 var rand = Math.floor( Math.random() * this.peoples.length ); // 随机从数组中取出某值(不会改变原数组) var da ...

  4. jst通用删除数组中重复的值和删除字符串中重复的字符

    以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...

  5. js从数组中删除指定值(不是指定位置)的元素

    RT: js从数组中删除指定值的元素,注意是指定值,而不是指定位置. 比如数组{1,2,3,4,5},我要删除其中的元素3,但是这个3的位置我是不知道的,只知道要删除值为3的这一个元素,请问要怎么写? ...

  6. js 删除 数组中某个元素(转载)

    来源:https://www.jb51.net/article/134312.htm js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.ht ...

  7. js判断数组中是否包含某个元素

    参考:http://www.runoob.com/jquery/misc-inarray.html js判断数组中是否包含某个元素 $.inArray( value, array [, fromInd ...

  8. Js判断数组中是否存在某个元素

    Js判断数组中是否存在某个元素 方法一:indexOf(item,start); Item:要查找的值:start:可选的整数参数,缺省则从起始位子开始查找. indexOf();返回元素在数组中的位 ...

  9. js 查找数组中某个字符出现的次数

    1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...

随机推荐

  1. kerberos认证原理---讲的非常细致,易懂

    前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...

  2. 数据迁移 Migration

  3. Django F查询Q查询Only与Defel

    F/Q查询 测试表 from django.db import models # Create your models here. class MyCharField(models.Field): d ...

  4. vue 路由跳转传参

    <li v-for="article in articles" @click="getDescribe(article.id)"> getDescr ...

  5. 复习C语言基础知识(day02)

    一.大型软件组织 定义规则,规则就是协议.用户和中介的接口. 软件开发的过程: 定义规则,定义协议.软件为用户提供的功能. 在C语言中使用接口实现.接口就是函数. 两种用户 函数的使用者 函数的实现者 ...

  6. PHP 设计模式之工厂模式 (静态工厂模式)

    ### 工厂模式: 由工厂类根据参数来决定创建出哪一种产品类的实例.工厂类是指包含了一个专门用来创建其他对象的方法的类.所谓按需分配,传入参数进行选择,返回具体的类.工厂模式的最主要作用就是对象创建的 ...

  7. vue监听页面大小变化重新刷新布局

    在项目中由于某些div元素在布局的时候需要初始化宽高,因为当浏览器缩小屏幕的时候需要重新刷新页面视图. 分析思路: 1.在store中创建state,用于保存当前浏览器的宽.高值. 2.在mounte ...

  8. 【[Offer收割]编程练习赛11 B】物品价值

    [题目链接]:http://hihocoder.com/problemset/problem/1486 [题意] [题解] 设f[i][j]表示前i个物品,每种属性的状态奇偶状态为j的最大价值; 这里 ...

  9. Spring Cloud-Ribbon实现客户端的服务均衡(三)

    客户端负载均衡与服务端负载均衡 服务端负载均衡 通过服务端负载均衡设备维护的服务清单根据算法(轮训 权重负载 流量负载)取出服务地址 进行转发 客户端负载 将指定服务的服务清单订单(注册中心)下来 在 ...

  10. nginx中父子进程工作的主体函数

    依据Nginx(0.7.67版本号)的代码.对Nginx主要的进程创建,进程主体以及事件处理进行了简要的分析. 基本上,父进程(即主进程)一開始会初始化及读取配置.并载入各模块的功能,然后fork() ...