>웹 프론트엔드 >JS 튜토리얼 >Number에서 가장 큰 요소와 가장 작은 요소를 가져옵니다.

Number에서 가장 큰 요소와 가장 작은 요소를 가져옵니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-06-11 10:00:411219검색

이번에는 Number에서 가장 큰 요소와 가장 작은 요소를 구하는 방법을 보여드리겠습니다. Number에서 가장 큰 요소와 가장 작은 요소를 구하는 방법은 무엇인가요? 실제 사례를 살펴보겠습니다.

1. 라이브러리 함수를 사용하지 않고

코드는 다음과 같습니다.

function findMax1 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    for (let i = 0; i < arr.length; i++) {
      result = arr[i] > result ? arr[i] : result;
    }
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}

설명:

변수 결과를 사용하여 최대값을 저장합니다. 검색할 배열을 순회합니다. 현재 순회하는 요소가 결과보다 큰 경우 이 요소를 결과에 할당합니다.

2. Array.reduce()를 사용하세요

코드는 다음과 같습니다.

function findMax2 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = arr.reduce((a, b) => {
      return a > b ? a : b;
    }, 0);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}

설명:

reduce 메서드는 배열을 누산기로 줄이고 배열의 각 요소를 축소합니다. 값.

reduce는 두 개의 매개변수를 허용합니다:

첫 번째 매개변수는 앞서 언급한 함수인 콜백입니다. 여기에는 4개의 매개변수가 있습니다:

  1. accumulator: 마지막 콜백 실행의 결과인 Accumulator. initialValue가 제공되면 첫 번째 시간은initialValue입니다.

  2. currentValue: 현재 순회하는 배열의 요소

  3. currentIndex: 0부터 시작하는 현재 순회하는 배열의 요소 인덱스입니다. initialValue가 제공되면 1부터 시작합니다.

  4. 배열: 현재 축소가 적용되는 배열입니다.

두 번째는 초기값으로 콜백 함수의 첫 번째 실행 시 첫 번째 실제 매개변수로 사용되는initialValue입니다. 이는 선택 사항입니다. 이 매개변수가 제공되지 않고 빈 배열에 적용되면 오류가 보고된다는 점에 유의하세요.

그러면 위 코드의 의미는 비교를 위해 배열을 순회할 때마다 더 큰 것, 즉 누산기를 유지하고 배열 요소와의 다음 비교에 사용된다는 것입니다. 결국 최대값인 이 값만 남게 된다.

3. Apply 및 Math.max() 사용

코드는 다음과 같습니다.

function findMax3 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max.apply(null, arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}

설명:

apply에 대한 설명은 약간 복잡하므로 더 이상의 설명은 생략하겠습니다.

두 개의 매개변수를 허용합니다. 첫 번째는 thisArg이고 두 번째는 argsArray입니다. 둘 다 선택 사항입니다. 간단히 말해서, 함수를 사용할 때 매개변수는 배열로 전달됩니다.

4. Math.max()를 사용하세요

코드는 다음과 같습니다.

function findMax4 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max(...arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}

설명:

이전 솔루션의 아이디어를 바탕으로 ES6에는 스프레드 연산자(.. .) 배열의 요소는 쉼표로 구분된 순서로 구분됩니다. Math.max() 함수의 요구 사항을 충족합니다.

JS

1에서 숫자, 수학 및 배열과 관련된 지식 포인트를 소개하고 싶습니다.

숫자 객체 생성 방법:

방법 1:

var 변수 = 새 숫자(숫자)

방법 2:

var 변수 = 숫자;

일반적으로 사용되는 방법:

toString() 숫자 변환 into 기본 형식으로 문자열을 지정합니다. (숫자를 입력하면 숫자로 변환됩니다. number.toString(2))

toFixed()는 소수점 자리가 유지되도록 지정하고 반올림 기능도 있습니다.

2, Math 

Math 객체에서 일반적으로 사용되는 방법:

ceil 올림

floor() 내림

random() 난수 방법 // 생성되는 의사 난수는 0과 1 사이입니다(0 포함). , 1번 제외),

반올림

3. 배열 배열 객체:

배열 생성 방법 1:

var 변수 이름 = new Array(); 길이가 0인 배열을 만듭니다.

방법 2:

var 변수 이름 = new Array(length)는 지정된 길이의 배열 객체를 생성합니다.

방법 3:

var 변수 이름 = new Array("Element 1", "Element 2"...); 배열의 요소를 지정하여 배열 개체를 만듭니다.

방법 4:

var 변수 이름 = ["요소 1", "요소 2"...];

배열에 주의할 사항:

1 배열의 길이는 JavaScript에서 변경될 수 있습니다.

var arr = new Array(); //创建了一个长度为0的数组对象。
arr[100] = 10;
document.write("arr长度:"+arr.length+"<br/>");
var arr2 = new Array("狗娃","狗剩","铁蛋");
arr2 = ["狗娃","狗剩","铁蛋","张三"];
document.write("arr2长度:"+arr2.length+"<br/>");

3.1数字的方法

a、concat把arr1与arr2的数组元素组成一个新的数组返回。  
arr1 = arr1.concat(arr2);

b、join使用指定的分隔符把数组中的元素拼装成一个字符串返回。

var elements = arr1.join(",");

c、pop :移除数组中的最后一个元素并返回该元素。

d、push:将新元素添加到一个数组中,并返回数组的新长度值。

arr1.push("你好");

e、reverse(); 翻转数组的元素

f、slice指定数组 的开始索引值与结束索引值截取数组的元素,并且返回子数组。(包头不包尾)

var subArr = arr1.slice(1,2);

g、sort排序,排序的时候一定要传入排序的方法。(不传时默认是按照ASCII表排列)

arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。
function sortNumber(num1,num2){ 
return num1-num2;
}

h、splice第一个参数是开始删除元素的 索引值, 第二参数是删除元素的个数,往后的数据就是插入的元素(也可以不写)。

arr1.splice(1,1,"张三","李四","王五");

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

微信小程序调用相机拍照

JS使用createElement()动态添加HTML

위 내용은 Number에서 가장 큰 요소와 가장 작은 요소를 가져옵니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.