问题描述
今天想要和大家分享的是有关于返回多维数组中最大值问题。这样描述可能会有些抽象,举个例子大家就会明白了。。例如: 多维数组[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]的返回值为[27,5,39,1001],即返回多维数组每一项的最大值。
好了,大家可以先自己思考一下解决方案,下面我就要和大家分享几种解决方案。
解决方案
自定义 sort() 方法
想要先和大家说一下我的第一想法,思路如下:
- 获取多维数组中每一项的最大值,这里使用自定义
sort()
方法进行一维数组的降序排序。 - 使用
push()
方法建立一个新数组,用作函数返回值。
代码如下所示:
1 | function largestOfFour(arr) { |
使用嵌套for循环
思路分解:
- 使用嵌套for循环进行判断,获取多维数组每一项的最大值
这种方法是最基础的,代码如下:
1 | function largestOfFour(arr) { |
map() + Math.max() + apply()
由于 Math.max()
方法不接收数组参数,这里巧用了 Math.max()
+ apply()
方法。其代码如下:
1 | function largestOfFour(arr) { |
最佳解决方案
1 | function largestOfFour (arr) { |
是不是这种方法一眼望去和上一种方法有很大的相似之处,,嘻嘻,是的呀,运用的方法都一样,只不过这种方法使用了 bind()
方法,但是我感觉其基本思路都是一样子的。
小结
不知道大家有没有更好的解决方案,如果有的话,请在下面留言,大家一起分享呀 ~~