>  기사  >  웹 프론트엔드  >  JavaScript를 사용하여 배열의 카디널리티 합계 찾기

JavaScript를 사용하여 배열의 카디널리티 합계 찾기

PHPz
PHPz원래의
2023-05-17 18:54:07664검색

JavaScript 프로그래밍에서는 일반적으로 배열에 대해 다양한 작업을 수행해야 합니다. 그 중 일반적인 질문은 배열의 기수합을 구하는 방법입니다. 기수 합은 배열의 모든 홀수 값의 합입니다. 이 기사에서는 JavaScript를 사용하여 배열의 기수 합을 해결하는 방법을 배우고 이를 해결하는 몇 가지 다른 방법을 제공합니다.

방법 1: 배열을 순회하고 하나씩 누적합니다.

이 방법은 매우 간단합니다. 전체 배열을 순회하려면 for 루프만 사용하면 됩니다. 기본합의 누산기. 다음은 이 방법을 구현하는 코드입니다.

function oddSum(arr) {
  let sum = 0; // 定义累加器,初始值为0
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] % 2 !== 0) { // 如果当前值是奇数
      sum += arr[i]; // 将其加入累加器中
    }
  }
  return sum; // 返回基数和
}

이 방법의 장점은 간단하고 직접적이며 이해하기 쉽다는 것입니다. 그러나 효율성은 높지 않으며, 특히 배열이 상대적으로 큰 경우 성능 문제가 발생합니다.

방법 2: Array.prototype.reduce() 사용

JavaScript에는 배열의 각 요소를 함수에 누적하고 최종적으로 값을 반환할 수 있는 고급 함수 Array.prototype.reduce()가 내장되어 있습니다. 우리는 그것을 기본합을 풀기 위해 사용할 수 있습니다. 다음은 Reduce 메소드를 사용하여 구현한 코드입니다.

function oddSum(arr) {
  return arr.reduce((sum, cur) => {
    if (cur % 2 !== 0) {
      return sum + cur;
    } else {
      return sum;
    }
  }, 0);
}

이 함수는 방법 1과 원리는 동일합니다. 차이점은 내장된 배열 반복 함수를 사용하여 코드를 더욱 간결하고 읽기 쉽게 만든 것입니다. 동시에 이 방법은 JavaScript에 내장된 최적화 알고리즘을 활용하므로 방법 1보다 더 효율적입니다.

방법 3: Array.prototype.filter() 및 Array.prototype.reduce() 사용

또 다른 방법은 먼저 Array.prototype.filter()를 사용하여 배열의 모든 홀수를 선택한 다음 Array를 사용하는 것입니다. .prototype.reduce()를 사용하여 이러한 요소를 합산합니다. 이 방법을 구현하는 코드는 다음과 같습니다.

function oddSum(arr) {
  const oddArr = arr.filter(num => num % 2 !== 0); // 选择出所有的奇数
  const sum = oddArr.reduce((sum, cur) => sum + cur, 0); // 将这些元素求和
  return sum; // 返回基数和
}

이 방법은 두 개의 루프가 필요하기 때문에 방법 2보다 약간 느릴 수 있습니다. 그러나 이 접근 방식은 매우 읽기 쉽고 이해하기 쉽습니다. 이번에도 JavaScript에 내장된 최적화 알고리즘을 사용하므로 성능은 여전히 ​​매우 높습니다.

요약

이 글에서는 자바스크립트 배열의 기수합을 푸는 세 가지 방법을 소개했습니다. 세 가지 방법 모두 유효하지만 각각 장단점이 있습니다. 실제 상황에 따라 가장 적합한 방법을 선택하는 것이 좋습니다. 메서드를 선택한 후 실행 시간을 확인하기 위해 console.time() 및 console.timeEnd() 함수와 같은 일부 도구를 사용하여 코드 성능을 테스트할 수 있습니다.

간단히 말해서, 독자들이 JavaScript를 사용하여 배열의 기수 합을 해결하는 방법을 이해하고 몇 가지 일반적인 기술을 익힐 수 있기를 바랍니다. 이러한 팁을 사용하면 다양한 배열 작업을 쉽게 처리하고 프로그래밍 기술을 향상시킬 수 있습니다.

위 내용은 JavaScript를 사용하여 배열의 카디널리티 합계 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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