文档章节

数组最大最小值与一个数组push到另外一个数组

tianyawhl
 tianyawhl
发布于 2016/09/20 14:20
字数 498
阅读 9
收藏 0

Math.max 可以实现得到数组中最大的一项,支持Math.max(param1,param2,param3…),不支持Math.max([param1,param2]) 也就是数组, 但是可以根据apply的可以将数组解析为参数列表来解决

var max=Math.max.apply(null,array),这样轻易的可以得到一个数组中最大的一项

这块在调用的时候第一个参数给了一个null,这个是因为没有对象去调用这个方法,我只需要用这个方法帮我运算,得到返回的结果就行,.所以直接传递了一个null过去

var max=Math.max.apply(null,array) 其实等价于Math.max(array),只是利用了apply 第二个参数是数组的特性

var a=[1,2,13,5]; var b=Math.max.apply(null, a); alert(b);//13,

上面的{}可以换成this 或 null或者{}

多维数组

var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(","); //转化为一维数组

alert(Math.max.apply(null,ta)); //最大值

alert(Math.min.apply(null,ta));//最小值

链式

Array.prototype.max = function() { return Math.max.apply({},this) }

Array.prototype.min = function() { return Math.min.apply({},this) }

[1, 2, 3].max()// => 3

[1, 2, 3].min()// => 1

也可以 Array.prototype.max = function() { return Math.max.apply({},a) }

var a =[1,2,3]

a.max()

上面的Array.prototype.max 与Array.prototype.min 可以随便取名字

再比如数组的push方法。

var arr1=[1,3,4];

var arr2=[3,4,5];

如果我们要把 arr2展开,然后一个一个追加到arr1中去,最后让arr1=[1,3,4,3,4,5] arr1.push(arr2)显然是不行的。

因为这样做会得到[1,3,4,[3,4,5]]

我们只能用一个循环去一个一个的push(当然也可以用arr1.concat(arr2),但是concat方法并不改变arr1本身) 

var arrLen=arr2.length
for(var i=0;i<arrLen;i++){
    arr1.push(arr2[i]);
}

自从有了Apply,事情就变得如此简单
Array.prototype.push.apply(arr1,arr2)也可以

arr1.push.apply(arr1,arr2)
alert(arr1)//[1,3,4,3,4,5]

© 著作权归作者所有

tianyawhl
粉丝 8
博文 258
码字总数 136550
作品 0
常州
前端工程师
私信 提问
一名前端工程师的自学之路!Js篇(11-22更新)

看到标题能进来的小伙伴,我也就不废话,先推荐一本必买的书《JavaScript高级程序与设计》。今天接着上一篇文章还是分享最基础入门的一些Js的知识。 1、构造函数 和对象 构造函数:可以通过n...

自律更自由
2017/11/22
0
0
LeetCode算法题-Min Stack(Java实现)

这是悦乐书的第177次更新,第179篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第36题(顺位题号是155)。设计一个支持push,pop,top和在恒定时间内检索最小元素的堆栈。 pu...

小川94
2018/11/20
0
0
JavaScript中apply的用法

apply方法: 它能劫持另外一个对象的方法,继承另外一个对象的属性 Function.apply(obj,args)能接受两个参数: obj: 这个对象将代替Function类中的this对象 args: 这是个数组,它将作为参数传...

阿振
2016/01/01
76
0
算法——最小调整有序

题目描述 有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。 给定一个int数组A...

一贱书生
2016/11/26
5
0
剑指offer java版(一)

二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数...

Android机动车
03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
46分钟前
3
0
Kafka 2.3 Producer (0.9以后版本适用)

kafka0.9版本以后用java重新编写了producer,废除了原来scala编写的版本。 这里直接使用最新2.3版本,0.9以后的版本都适用。 注意引用的包为:org.apache.kafka.clients.producer import ja...

实时计算
55分钟前
2
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
14
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部