返回数组中的最大数 -freeCodeCamp

找出多个数组中的最大数

右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。

给出的数组如下:

    

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 应该返回一个数组

largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 应该返回 [27,5,39,1001].

largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]])应该返回 [9, 35, 97, 1000000].

  分析需求:

  其实这个题很简单,我们只要把数组进行循环,然后每一项做一个排序,返回第0个就可以;

  代码如下:

  

function largestOfFour(arr) {

            var newArr=[];
            for(var i=0;i<arr.length;i++){
                arr[i].sort(function(a,b){
                    return b-a;                  //对每一个数组进行从大到小的排序
                })
                newArr.push(arr[i][0]);     //把每一个数组中的最大值放入新数组
            }
            return newArr;
        }

    largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);   //返回[5,27,39,1001]

我们在数组的原型上添加一个min和max方法来判断当前数组的最大值和最小值

min方法:

Array.prototype.min = function (){
            var min = this[0];
            for(var i=0;i<this.length;i++){
                if(this[i]<min){             //如果当前值小于前一个这个值就被当作最小值
                    min=this[i];
                }
            }
            return min;
        }

max方法同理:

Array.prototype.max = function (){
            var max = this[0];
            for(var i=0;i<this.length;i++){
                if(this[i]>max){
                    max=this[i];
                }
            }
            return max;
        }

为避免冲突,可以检测一下Array的原型中有没有这个方法

if(Array.prototype.min == "undefined"){
  //再添加方法
}
时间: 2024-10-14 12:42:04

返回数组中的最大数 -freeCodeCamp的相关文章

【前端小小白的学习之路】----&gt;用JS编写一个函数,返回数组中重复出现过的元素

用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = 1; } else { obj[arr[i]]++; } } for (var

返回数组中指定的一列

提取二维数组相同的键和键对应的值组成一个新的一维数组, tp不支持此函数,所以自己在php中找到,写在了tp的function下//array_column — 返回数组中指定的一列 function arrayColumn(array $array, $column_key, $index_key=null){ //本函数用来检查指定的函数是否已经定义.参数 function_name 为待检查的函数名称.若已定义指定的函数则返回 true 值,其它情形均返回 false 值. if(func

编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果

问题: 写一个函数,返回数组中所有元素被第一个元素除的结果,包含第一个元素,也要自己除自己 分析: 主要注意两点:1,判断输入是否合法:2,判断除数是否为0:3,从后往前除(真猥琐) 代码实现: 1 /* div_array.cc 2 * 2014/09/03 create 3 * 写一个函数,返回数组中所有元素被第一个元素除的结果,包含第一个元素,也要自己除自己 4 */ 5 #include <iostream> 6 using namespace std; 7 8 void div_ar

返回数组中最小/大值,适用数组

//返回数组中的最小值 function min(target){ return Math.min.apply(0,target); } //返回数组中的最大值 function max(target){ return Math.max.apply(0,target); } 返回数组中最小/大值,适用数组

用递归的方法求数组中的最大数

思路: 得到全部5个中最大的数--> 比较第5个数与前四个中最大数的值-> 得到前四个中最大的数--> 比较第四个数与前三个中最大数的值-->得到前三个数中的最大值-->比较第三个数与前两个中最大数的值-->得到前两个数中最大的值-->比较第二个数与第一个数中的最大值 但实际运算是从最右端往左端逐步(和上面的执行路径正好相反)比较的. 1 package test; 2 3 public class ArrayMax { 4 5 public static voi

javascript 返回数组中不重复的元素

这是实现结构伪类type-of-type的部分代码: <script type="text/javascript"> var ret= ["span","span","strong","span","b"] var norepeat = function(array){ var set = array.join(",")+","; wh

返回数组中元素之和为输入值的元素的下标(以1为基)

Leetcode中原题:Two Sum 给定一个整数数组,找出其中和等于给定目标值的数的下标(数组第一个元素的下标是1),第一个下标必须比第二个下标小,假定此题只有唯一解. 例: 输入:numbers={2, 7, 11, 15}, target=9 输出:index1=1, index2=2 思路1:两层循环,外层循环从0到倒数第二个元素,里层循环,从当前外层循环下标的下一个值开始一直到数组结尾,复杂度O(n2),超时. 思路2:如果数组是有序的,显然有更好的做法.使用常用的效率比较高的排序算

返回数组中最大子数组的和

一.题目: 在原有的一位数组上进行扩展,求首尾相连的最大子数组的和: 二.要求: 1)输入一个一维整形数组,数组里有正数也有负数. 2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 3) 求所有子数组的和的最大值. 4) 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,一人负责代码编程代码复审和代码测试计划.发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 三.组员:孔维春 崔鹏勃 四.思路分析: 这次的编程开发是基于上次的一维

返回数组中的最大值和删除数组重复值-排序

//数组中最大值function getMax(arr){ //取该数组第一个值为最大值 var max=arr[0]; for(var i=0;i<arr.length;i++){ if(arr[i]>max){ max=arr[i] } } return max;} console.log(getMax([2,98,10,88])) /*--------------------------------------------------------------------*///删除数组重