웹 프론트엔드 JS 튜토리얼 'forEach'를 사용할 때 내 함수가 '정의되지 않음'을 반환하는 이유는 무엇입니까?

'forEach'를 사용할 때 내 함수가 '정의되지 않음'을 반환하는 이유는 무엇입니까?

Nov 10, 2024 am 04:45 AM

Why Does My Function Return `undefined` When Using `forEach`?

forEach 메서드를 사용할 때 함수가 값을 반환하지 못함

객체 배열 값을 검사하는 함수를 생성할 때 예기치 않게 정의되지 않은 값을 반환합니다. 이 문제는 혼란을 불러일으켰으며 이 동작의 원인을 자세히 조사해 보겠습니다.

문제 설명

제공된 코드 조각에서 getByKey 함수는 forEach 메서드를 사용합니다. 데이터 배열을 순회합니다. 콜백 함수 내에서 조건부 확인에 따라 값을 반환하려고 시도합니다. 그러나 이 return 문은 getByKey 함수 자체가 아닌 forEach에 전달된 익명 함수만 종료합니다. 결과적으로, getByKey 함수 호출에서는 정의되지 않음이 반환됩니다.

솔루션

이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. For 루프 사용: forEach를 기존 for 루프로 바꾸세요. 이 접근 방식을 사용하면 루프 자체에서 원하는 값을 반환할 수 있습니다.

    1

    2

    3

    4

    5

    6

    7

    function getByKey(key) {   

        for (var i = 0; i < data.length; i++) {

            if (data[i].Key === key) {

               return data[i];

            }

        }

    }

    로그인 후 복사
  2. 결과를 변수에 저장: 콜백 함수에서 일치하는 값을 할당합니다. 값을 변수에 추가하고 getByKey 함수에서 해당 변수를 반환합니다.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    function getByKey(key) {   

        var found = null;

        data.forEach(function (val) {

            if (val.Key === key) {

                found = val;

            }

        });

        return found;

    }

    로그인 후 복사

이러한 솔루션을 구현하면 일치 항목이 발견될 때 getByKey 함수가 원하는 값을 올바르게 반환하도록 할 수 있습니다.

위 내용은 'forEach'를 사용할 때 내 함수가 '정의되지 않음'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

jQuery 날짜가 유효한지 확인하십시오 jQuery 날짜가 유효한지 확인하십시오 Mar 01, 2025 am 08:51 AM

jQuery 날짜가 유효한지 확인하십시오

jQuery는 요소 패딩/마진을 얻습니다 jQuery는 요소 패딩/마진을 얻습니다 Mar 01, 2025 am 08:53 AM

jQuery는 요소 패딩/마진을 얻습니다

상위 5 일 날짜 조작 JS 플러그인 상위 5 일 날짜 조작 JS 플러그인 Feb 28, 2025 am 12:34 AM

상위 5 일 날짜 조작 JS 플러그인

10 JQuery Accordions 탭 10 JQuery Accordions 탭 Mar 01, 2025 am 01:34 AM

10 JQuery Accordions 탭

10 JQuery 플러그인을 확인할 가치가 있습니다 10 JQuery 플러그인을 확인할 가치가 있습니다 Mar 01, 2025 am 01:29 AM

10 JQuery 플러그인을 확인할 가치가 있습니다

jQuery div에 스크롤 바를 추가합니다 jQuery div에 스크롤 바를 추가합니다 Mar 01, 2025 am 01:30 AM

jQuery div에 스크롤 바를 추가합니다

노드 및 HTTP 콘솔로 HTTP 디버깅 노드 및 HTTP 콘솔로 HTTP 디버깅 Mar 01, 2025 am 01:37 AM

노드 및 HTTP 콘솔로 HTTP 디버깅

See all articles