资讯专栏INFORMATION COLUMN

【译】JS基础算法脚本:查找数组每项的最大值

Amio / 1552人阅读

摘要:方法对累加器和数组中的每个元素从左到右应用一个函数,将其减少为单个值。有其他好的方法或思路的道友,不妨在沙发区神交一番。对的方法有较深理解的的请指点下,这里有点蒙

需求

给出一个2维数组,查找每项子数组中的最大值,返回包含最大值的新数组

largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]) 
should return [27,5,39,1001].
思路1

2层循环找出最大值

push方法

function largestOfFour(arr) {
    var newArr = [];
    for(var i=0; i maxVal) {
                maxVal = arr[i][j];
            }
        }
        
        newArr.push(maxVal);
    }
    
    return newArr;
}   
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
思路2

arr.map对数组操作

arr.reduce对子数组操作

function largestOfFour(arr) {
    return arr.map(function(group) {
        return group.reduce(function(a,b) {
          return a > b ? a : b;
        }) ;
    });
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]);
思路3

1.不是太理解这个方法

function largestOfFour(arr) {
    return arr.map(Function.apply.bind(Math.max,null));
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
相关
arr.map()

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

arr.reduce()

reduce() 方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值。

Function.apply()

The apply() method calls a function with a given this value, and arguments provided as an array (or an array-like object).

Function.bind()

The map() method creates a new array with the results of calling a provided function on every element in the calling array.

有其他好的方法或思路的道友,不妨在沙发区神交一番。
对Function的方法有较深理解的的请指点下,这里有点蒙

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84769.html

相关文章

  • JS基础算法脚本查找字符串中最长的子字符

    摘要:返回一组数中的最大值。返回数组中所有元素的连接起来的字符串,参数默认为,根据返回一个从开始参数到结束参数的新数组,不改变原数组有其他好的方法或思路的道友,不妨在沙发区神交一番。 需求 给出一个字符串,查找字符串中最长的子字符,并返回其长度 findLongestWord(Google do a barrel roll) 思路1 字符串分割 循环判定,暂存较大值 循环结束,返回最大值...

    forsigner 评论0 收藏0
  • JS基础算法脚本:回文检测

    摘要:返回一个新的字符串,表示串转换为小写的调用字符。不会影响字符串本身的值。返回一个包含子字符的数组,确定分割位置。将数组中所有子元素拼接成一个字符串,不改变原数组。 需求 给出一个字符串,检测是否是回文,是则返回true,不是则返回false(忽略标点符号,大小写,空格) palindrome(A man, a plan, a canal. Panama) should return t...

    Turbo 评论0 收藏0
  • JS基础算法脚本:求插入数字的最小索引

    摘要:需求给出定两个参数,参数,参数查找参数插入数组时的最小索引思路数组重排序判断数组中是否包含的最小数,有,则返回其最小数的索引无,则返回其数组长度思路用变量存储大于中各元素的次数返回变量思路数组重排序查找大于的数组最小值的索引索引等于返 需求 给出定两个参数,参数1:arr,参数2:num;查找参数num插入数组时的最小索引 getIndexToIns([10, 20, 30, 40, ...

    xingqiba 评论0 收藏0
  • 重温JS基础--引用类型(一)

    摘要:引用类型有时候也被称为对象定义。类型目前看到大多数引用类型都是类型的实例。第一种是使用操作符后跟一个构造函数。创建数组的基本方式有两种第一种是通过构造函数的方式,第二种是是通过数组字面量的方式进行创建。 前言引用类型的值是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织到一起。它通常被称为类。引用类型有时候也被称为对象定义。对象是某个引用类型的实例。新对象是使用new操...

    kycool 评论0 收藏0
  • JS基础算法脚本数组分割

    摘要:方法返回一个从开始到结束不包括结束选择的数组部分浅拷贝到一个新数组对象方法通过删除现有元素和或添加新元素来更改一个数组的内容。 需求 给出一个数组,按长度要求分割成多维数组 chunkArrayInGroups([0, 1, 2, 3, 4, 5, 6], 3) should return [[0, 1, 2], [3, 4, 5], [6]] chunkArrayInGroups([...

    djfml 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<