数组比较大小的几种方法及math是方法

  call  apply  bind 的区别?

  解决函数内this的指向:

    1.可以在函数外提前声明变量 一般情况下我们用   var _this/that=this

    2.通过apply和call来修改函数this指向

    apply和call的区别?

      用法一样,就是参数形式不一样  (案例: fn.call(obj,a,b)     fn.apply(obj,[a,b]))(禁忌:fn为函数但是不能带())

      二者代表函数内的this换成obj之后然后把fn调用

    3.bind修改函数内的this (fn.bind(obj,a,b))只是替换了this,但是不调用fn,返回的还是函数

  bind适合于事件:call  apply适合于全局变量(在原形上继承)

  fn.call(obj)   (call()一个参数必须是对象)

  解析:是fn继承了obj中的所有属性,只要继承的可以看成是公有的,天生自带的私有的,在使用的时候,私有的就不会找公有的:

  案例:

  function fn(){

    this.name="张三"

    console.log(this.name)

  }

  var obj={

    name:"李四"

  }

  fn.call(obj)  最后的结果还是张三,   他相当于这种写法  fn.prototype.name="李四"

  变量的交换:(举例说明,比如有a杯茶水,还有b瓶饮料,如果想让a杯放饮料,让b瓶放茶水,只能在拿一个空杯,把a杯的茶水放到空杯里面,那么a杯就空了,再把b瓶的饮料,倒进a杯就可以了,那么b杯就空了,再把原来的空杯里面装茶水,倒进b杯就可以了)

  案例:

    var a=4;

    var b=3;

    var n=null;

    n=a;

    a=b;

    b=n;

    console.log(a,b)

  找出数组中最大的值:

  var arr=[45,26,15,54,36,8,4]

  1.借助Math中的max;(最简单的方法)

    Math.max.apply(null,a)  返回值就是最大值;

  2.借助数组中的sort;

    var fn=function(a,b){

      retrun a-b

      }

    var s=a.sort(fn)

    console.log(s[s.length-1])

  3.假设法:(比较法)

  var max=a[0]

  var num=null;

  for(var i=1;i<a.length;i++){

    if(max<a[i]){

      num=max;

      max=a[i];

      a[i]=null;

    }

  console.log(max)

  4.冒泡排序

    var num=null;

    for(var j=a.length-1;j<=0;j--){

      for(var i=0;i<j;i++){

        if(a[i]<a[i+1]){

          num=a[i];

          a[i]=a[i+1];

          a[i+1]=num

        }

      }

    }

  math数值对象;

    js自带的类 基类:object

         子类:Function(函数) Array(数组)  Number(数字)  String(字符串)  Date(日期)  Math(算术)  RegExp(正则)  Boolean(布尔)

    Math()类   math对象,研究他的属性和方法;

  数学中的弧度与角度

    1弧度=╥/180度   1角度=180/╥弧度

  1.弧度中的╥ Math.PI

  2.返回平方根:Math.sqrt(16) 返回16的平方根;

  3.Math.abs(x)  返回数字中的绝对值;

  4.Math.ceil(x)   返回x的上舍入;

  5.Math.floor(x)  返回x的下舍入;

  6.Math.max(a b c d) 返回a b c d中的最大值   (a b c d必须为数值)

  7.Math.min(a b c d) 返回a b c d中的最小值;

  8.Math.random()  返回0-1之间的随机数;

  9.Math.round() 返回四舍五入的数值;

  

  10.Math.sin(x)  返回x的正弦;(对边比斜边)

  11.Math.cos(x) 返回x的余弦; (临边比斜边)

  12.Math.tan(x)  返回x的正切值 (对边比临边)

  13.Math.asin(x)  返回x的反正弦;(知道边求角)

  14.Math.acos(x) 返回x的反余弦; (知道边求角)

  15.Math.atan(x)  返回x的反正切值 (知道边求角)

原文地址:https://www.cnblogs.com/shangjun6/p/10098677.html

时间: 2024-10-10 14:24:19

数组比较大小的几种方法及math是方法的相关文章

浅谈 Math.BigMul 方法

偶然在 MSDN 上看到 Math.BigMul 方法: Math.BigMul 方法 生成两个 32 位数字的完整乘积. 命名空间:System 程序集: mscorlib(在 mscorlib.dll 中) 语法: public static long BigMul(int a, int b) 参数: a  类型:System.Int32,第一个乘数. b  类型:System.Int32,第二个乘数. 返回值: 类型:System.Int64 包含指定数字乘积的 Int64. 我就想,为什

js注意点:数组比较大小方法及数组与对象的区别

(迁移自旧博客2017-04-19) 快速复制数组及数组比较大小方法 首先介绍一下复制数组的方法: var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var aCopy = arr.slice(); aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']; 这样就成功复制数组了,是不是很神奇? slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array: v

Knockout获取数组元素索引的2种方法,在MVC中实现

在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespace UseIndex.Models { public class Student { public int Id { get; set; } public string Name { get; set; } } } 在HomeController中,先模拟一个Student的集合,在投影出Name属性的集合,最后以Json返回给前台视图. using Syste

js之二维数组定义和初始化三种方法

方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array();   //先声明一维 for(var k=0;k<i;k++){        //一维长度为i,i为变量,可以根据实际情况改变

Java读取文件夹大小的6种方法及代码

这篇文章介绍了JAVA读取文件夹大小的几种方法实例,有需要的朋友可以参考一下. (一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"; // 递归方式 计算文件的大小

增加表空间大小的四种方法

增加表空间大小的四种方法Meathod1:给表空间增加数据文件ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;   Meathod2:新增数据文件,并且允许数据文件自动增长ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.

查看进程占用内存大小的几种方法

1. pmap -x pid 2. ps -aux | grep 进程名 ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 进程名 3. top -d 1 -p pid 4. cat /proc/[pid]/status 查看进程占用内存大小的几种方法

修改swap大小的两种方法

这几天在虚拟机上安装Oracle VM Manager的时候提示swap太小,需要修改swap来重新安装,现在分享给大家. 修改交换空间大小有两种选择: 添加一个交换分区或者添加一个交换文件.两种方法都可以使用" 1. 添加一个交换分区 步骤如下:    a  使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)        b 使用 mkswap 命令来设置交换分区:           # mkswap /dev/sdb2    c 启用交换分区:          

Java 数组元素复制的三种方法

一.将数组元素逐个复制到目标数组中 例1 //源数组 int[] source = {10,30,20,40}; //目标数组 int[] target = new int[source.length]; for (int i = 0;i < source.length;i++){ target[i] = source[i]; } 二.使用System类的arraycopy()方法 public static void arraycopy(Object src,int srcPos,Object