数组最大元素及下标

有两个东东,特别好用,一个叫call一个叫apply;这是两个方法,很厉害。

求最大数,当然,最小数也是一样的。

var arr=[1,2,3,4,5,6,10,7,9,11,20,19];

alert(Math.min.apply(null,arr));//获取数组中最小值

alert(Math.max.apply(null,arr));//获取数组中的最大值

求最大值下标

var index_ =arr.indexOf(Math.max.apply(Math, arr)); //获取最大值的下标 同理,最小下标就是min了。

那么这是什么原理呢?

apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

  apply指代的参数必须是数组形式,且作用和call是如出一辙的。都是代入其他对象来替换当前对象,将当前对象没有功能用其他对象有的功能给替补上,我只能这样理解了。

参考:传送门

时间: 2024-08-28 20:41:37

数组最大元素及下标的相关文章

一个数组,每隔两个数删除一个数,到数组末尾接着从头开始,一直循坏,得出最后删除的一个元素的下标

public class DeleteEveryTwo { public static void main(String[] args) { int index = getLastDeletedIndex(8); System.out.println("The last index deleted is " + index); } /** * * @param a *            数组长度 * @return 最后被删除的数的原始下标 */ public static int

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

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

折半查找数组元素的下标(java)

1.用折半查找数组元素的下标 2.但前提是数组已经排序好的3.例:public static void main(String ars []){        int [] number=new int []{2,6,9,45,65,88};}publci staic int getIndex(int [] arr,int key){    int min=0,max=arr.length,mid;    while(min<=max){            mid=(min+max)>&g

Java实现升序排列的整形数组A,元素两两不相等找出A[i]=i的数据

import java.util.ArrayList; //升序排列的整形数组A,元素两两不相等.请设计高效的算法找出A[i]=i的数据. //使用二种方法 public class BinarySearch { public static void main(String[] args) {     int[] nums={-1,1,2,3};     ArrayList<Integer> res=find(nums);     for(int e:res){      System.out

JS Jquery去除数组重复元素

js jquery去除数组中的重复元素 第一种:$.unique() 第二种: for(var i = 0,len = totalArray_line.length;i < len;i++) { !RegExp(totalArray_line[i],"g").test(resultArray_line.join(",")) && (resultArray_line.push(totalArray_line[i])); }-----解决了V0.2

求一组数组各个元素的和*

package com.chongrui.test; /* *求一组数组各个元素的和* * */ import java.util.Scanner;public class test { public static void main(String[] args) { int[] num = {18,12,344,4,5,6,7,8,9,10};//创建并初始化一维数组num System.out.println("输出一维数组"); for(int i=0;i<num.leng

数组 复制 元素个数 连接 查找 查询位置

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //数组 //快速创建数组 NSArray *[email protected][@"MON",@"TUE",@"WED",@"THU",@"FRI",@"SAT",@"SUN&

ArrayList中remove()方法删除长度大于5的元素之后下标重定位的问题

1.问题阐述 需求: 有一个ArrayList数组,要求删除长度大于5的字符串,如:arr = {"ab1","123ad","bca","dadfadf","dddaaa","你好啊","我来啦","别跑啊"}: 要求结果输出: {"ab1","123ad","bca","你好

数组的创建/查找数组里面的内容/添加数组中元素/使用指定的字符串把数组链接起来/判断数组内是否有指定的数组元素/四种遍历进行输出数组中的元素有哪些

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //创建数组 //1.快速创建数组@[] NSArray*[email protected][@"month",@"tue",@" wed",@"fir"]; //2,创建空的数组 NSArray*arr=[[NSArray a